Bonjour � tous.
Je code un formulaire qui contient plusieurs champs select.
Ces select sont remplis par des valeurs stock�es dans la base de donn�e.
J'utilise l'�venement onchange pour mettre la valeur choisie dans une variable javascript.
Mais l'utilisateur n'est pas oblig� de changer la valeur de chaque select, parfois, la valeur par d�faut est la valeur qu'il souhaite s�lectionner.
Il faut donc que je d�clare en haut de ma page la variable javascript, et que je lui donne la valeur par d�fault. J'�crase cette valeur par un "this.value" dans un onchange lorsque l'utilisateur change de valeur.
Mon probl�me vient de l'initialisation de la variable. Le script marche uniquement si je change la valeur de TOUS les select...
Pourtant, j'ai beau chercher, je ne vois pas ce qui cloche.
Firebug me renvoie cela:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <SCRIPT language="Javascript"> var <?php echo ($nomval);?> = <?php echo ($dflt);?>; </SCRIPT> <select name='<?php echo$param; ?>' id='<?php echo ($nomval);?>' onchange="<?php echo ($nomval);?> = this.value;"> <?php $values = get_valeurs($id); while ($donnees=mysql_fetch_assoc($values)) { $id_value = $donnees["id"]; $value = $donnees["valeur"]; echo "<option value='$id_value'>$value</option>"; } ?> </select>
La ligne "var val1 = 95;" est bien cens� d�clarer la variable val1, et lui donner la valeur 95, non?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <SCRIPT language="Javascript"> var val1 = 95; </SCRIPT> <select name='param1' id='val1' onchange="val1 = this.value;"> <option value='95'>no</option><option value='94'>yes</option></select> </p> <p> <SCRIPT language="Javascript"> var val2 = 93; </SCRIPT> <select name='param2' id='val2' onchange="val2 = this.value;"> <option value='93'>no</option><option value='92'>yes</option></select> </p> <input type="submit" value="OK" onclick="var req ='id_valeur='+val1; req = req+' OR id_valeur='+val2; alert('req vaut:'+req); "/>
Pourtant, si je ne change pas la valeur de chaque select, rien ne se passe si j'appuis sur le bouton de validation, et firebug annonce "val1 is not defined" (ou val2, val3 etc en fonction des valeurs chang�es ou non par l'utilisateur)
Si je change chaque valeur, l'alert affiche le resultat voulu.
Si quelqu'un voit d'ou vient mon probleme, je lui en serais tr�s reconnaissant.
Partager