Initialisation de variable
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.
Code:
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> |
Firebug me renvoie cela:
Code:
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); "/> |
La ligne "var val1 = 95;" est bien censé déclarer la variable val1, et lui donner la valeur 95, non?
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.