Bonjour,

J'utilise une fonction javascript pour changer l'url dans la barre d'adresse. Cette fonction est appelée depuis un formulaire, par un champ de type select.

Elle fonctionne bien en utilisant directement le nom du champ en question, cependant comme cette fonction sera utilisée pour différents champs, j'aimerais pouvoir en faire qu'une, et passer le nom du champ (select) en paramètre à la fonction.

Mais en utilisant la paramètre passé, cela ne fonctionne pas je ne comprends pas pourquoi. Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
	function ChangeUrl(formulaire, nomChamp){
   		if (formulaire.nomChamp.selectedIndex != 0){
      		location.href = formulaire.nomChamp.options[formulaire.nomChamp.selectedIndex].value;
       	}
	}
et l'appel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
    	<form name="nbre_pges" method="post">
                    <select name="nb_ann" class="moyen" onChange="ChangeUrl(this.form, this.name);" style="width:11em;">
                        <option value="5">Résultats par page</option>
                        <option value="<? echo str_replace("pges=$g_pges", "pges=10", $url); ?>" <? if($f_nbr == "10") echo "selected=selected"; ?>>10</option>
                        <option value="<? echo str_replace("pges=$g_pges", "pges=20", $url); ?>" <? if($f_nbr == "20") echo "selected=selected"; ?>>20</option>
                        <option value="<? echo str_replace("pges=$g_pges", "pges=50", $url); ?>" <? if($f_nbr == "50") echo "selected=selected"; ?>>50</option>
                    </select>
</form>
Je teste avec un alert(nb_ann) le nom du champ, et sa valeur est bien correcte. Sur explorer il me dit que ma variable nomChamp est nul, mais si j'utilise dans la fonction "formulaire.nbre_pges" au lieu de "formulaire.nomChamp" ça fonctionne.. Je ne comprends pas d'où viens l'erreur...

Merci d'avance