Page 1 sur 1

recuperer des element d'une liste quand il ya des espaces!

Posté : 02 févr. 2006, 15:53
par isatis28
Bonjour,

J'ai une liste deroulante et je dois recuperer l'item selectionenr. jusque la j'y arrive mais lorsque il y a des espaces, seul le premier mot est prit en compte. Voici un exemple:
<SELECT name=aliment onchange=lulu(this.form.elements.aliment.options[this.form.elements.aliment.selectedIndex].value)>
<option>ici la bas </option>
<option> truc bidule </option>
<option>machin</option></select>
Ici dans ma fonction lulu si je selectionne le premier item, seul le mot ici sera prit en compte, et non l'integralité de l'expression.La je dois dire que je seche! :?

merci d'avance

Posté : 02 févr. 2006, 15:59
par Cyrano
Utilise une syntaxe conforme et ça va fonctionner même avec des espaces:
<select name="aliment" onchange="lulu(this.form.elements.aliment.options[this.form.elements.aliment.selectedIndex].value)">
  <option>ici la bas </option>
  <option> truc bidule </option>
  <option>machin</option>
</select>
Différence ? Le guillemets.

Posté : 02 févr. 2006, 16:08
par isatis28
j'ai fait un copier/coller de mon code et la liste est créée en php il n'y a donc pas deguillemt, car son contenu est extrait d'un BD. J'ai neamoins essayé avec des simples quotes mais cela ne donne rien! Il y a peut etre une syntaxe particulière pour rajouter des guillemets dans des guillemets?

Posté : 02 févr. 2006, 16:11
par isatis28
J'ai egalement essayé de metter le select en dehors su script php de façon a mettre des guillemets, mais il n'y a toujours qu'un seul mot de prit en compte.

Posté : 02 févr. 2006, 16:20
par Cyrano
Ne voyant qu'un bout de code HTML, je n'ai aucune idée de ce qui cloche dans ton code PHP...

Posté : 02 févr. 2006, 16:24
par isatis28
Voici mon code
$con= mysql_connect ($serv,$log,$pass) or die ("erreur de connection");
mysql_select_db($base,$con) or die ("erreur de selection");

echo "selectionnez un plat:";
echo "<SELECT name='aliment' onchange='lulu(this.form.elements.aliment.options[this.form.elements.aliment.selectedIndex].value)'>";
				   
$sisi="select DISTINCT Aliment from $table4;";
$sasa=mysql_query($sisi,$con) or die ('erreur requete'); 
while ($row=mysql_fetch_row($sasa)){
        for($i=0;$i<count($row);$i++) {echo"<option value=$row[$i]>$row[$i]</option>";}}echo"</select>"; ?>

<script language ="javascript">
function lulu(form)
{
 alert(form);}
Les elements de ma liste sont bien conforme a ma BDN, mais quand je recupère le form, seul un mot est prit en compte.

Posté : 02 févr. 2006, 16:31
par Cyrano
Essaye comme ça :
<?php
$con= mysql_connect ($serv,$log,$pass) or die ("erreur de connection");
mysql_select_db($base,$con) or die ("erreur de selection");
?>
selectionnez un plat:
<SELECT name="aliment" onchange="lulu(this.form.elements.aliment.options[this.form.elements.aliment.selectedIndex].value)">
<?php                   
$sisi="select DISTINCT Aliment from $table4;";
$sasa=mysql_query($sisi,$con) or die ('erreur requete');
while ($row=mysql_fetch_row($sasa))
{
    for($i=0;$i<count($row);$i++)
    {
?>
  <option value="<?php echo($row[$i]); ?>"><?php echo($row[$i]); ?></option>
<?php
    }
}
?>
</select>
<script language ="javascript">
function lulu(form)
{
    alert(form);
}

Posté : 02 févr. 2006, 16:38
par isatis28
C'est bon ça marche impecable, merci bcp!