Formulaire dynamique

Signaler
Messages postés
1
Date d'inscription
jeudi 9 août 2007
Statut
Membre
Dernière intervention
9 août 2007
-
Messages postés
177
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2009
-
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

Messages postés
177
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2009
1
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