Formulaire dynamique

serialgraph Messages postés 1 Date d'inscription jeudi 9 août 2007 Statut Membre Dernière intervention 9 août 2007 - 9 août 2007 à 15:26
the_wwt Messages postés 177 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 16 janvier 2009 - 9 août 2007 à 15:35
Un petit probleme avec une liste déroulante contextuelle !!!


Je désire créer une liste déroulante qui affiche des informations en fonction d'un choix d'une autre liste déroulante pour préciser une localisation géographique !!!
Mon code est celui-ci, pouvez-vous m'aider ?!


- Entre <HEAD> et </HEAD> :


<SCRIPT type= "text/javascript" src="localisation.js">


- Entre et :


<FORM name ="recherche" method="post" action="liste.php">


<SELECT name="region" size="1" class="select3" onChange='Choix(this.value)';">
<OPTION>GUADELOUPE</OPTION>
<OPTION>MARTINIQUE</OPTION>
<OPTION>REUNION</OPTION>
<OPTION>PARIS_ILE_DE_FRANCE</OPTION>
<OPTION>FRANCE_PROVINCE</OPTION>
<OPTION>GUYANE</OPTION>
<OPTION>SAINT_MARTIN</OPTION>
<OPTION>SAINT_BARTHELEMY</OPTION>
</SELECT>


<SELECT name="local" size="1" class="select3">
</SELECT>


</FORM>


- Dans localisation.js :


<SCRIPT language="JavaScript">


function Choix(r) {
/*Je récupère la valeur de la liste region*/


switch (r) {case GUADELOUPE : var j 6; var txt new Array ('GUADELOUPE','BASSE_TERRE','GRANDE_TERRE','MARIE_GALANTE','LES_SAINTES','DESIRADE'); break;case MARTINIQUE : var j 6; var txt new Array ('MARTINIQUE','NORD_ATLANTIQUE','SUD_ATLANTIQUE','NORD_CARAIBES','SUD_CARAIBES','CENTRE'); break;case REUNION : var j 6; var txt new Array ('REUNION','OUEST','NORD','EST','SUD','CENTRE'); break;case PARIS_ILE_DE_FRANCE : var j 9; var txt new Array ('PARIS_ILE_DE_FRANCE','PARIS','ESSONNE','HAUT_DE_SEINE','SEINE_SAINT_DENIS','SEINE_ET_MARNE''VAL_DE_MARNE','VAL_D_OISE','YVELINES'); break;case FRANCE_PROVINCE : var j 6; var txt new Array ('FRANCE_PROVINCE','OUEST','NORD','EST','SUD','CENTRE'); break;case GUYANE : var j 1; var txt new Array ('GUYANE'); break;case SAINT_MARTIN : var j 1; var txt new Array ('SAINT_MARTIN'); break;case SAINT_BARTHELEMY : var j 1; var txt new Array ('SAINT_BARTHELEMY'); break;
}
/*Je définis le texte à afficher et le nombre de ligne de la liste local*/
 
recherche.local.options[0].text="Toutes les localisations...";
/*J'écris la première ligne de la liste local*/


for (i=0;i<j;i++) {
  recherche.local.options[i+1].text=txt[i];
 }
/*J'écris les (j) lignes suivantes de la liste local*/


}


</SCRIPT>




serialgraph.com

1 réponse

the_wwt Messages postés 177 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 16 janvier 2009 1
9 août 2007 à 15:35
Bonjour,

Au lieu de faire .text = txt[i]
Il faut que tu crée une nouvelle option:

var opt = new Option(txt[i],txt[i],false,false);
recherche.local.options[recherche.local.options.length] = opt;

Cordialement,
Pierrick
            
0
Rejoignez-nous