Bonjour tout le monde,
J'aimerais créer une liste de sélection en javascript via un retour de PHP (AJAX).
Voici le retour de PHP :
La page crée la liste déroulante mais ne mets que ceci :{"":"Choix d'un pharmacien","11111":"Brankaer jean Pierre pour DUPONT Marie","11111":"Brankaer jean Pierre pour HUBERT Laurent","222222":"Cousin Jean Luc pour DUPONT Marie","222222":"Cousin Jean Luc pour HUBERT Laurent","35654":"Jamon Jose pour HUBERT Laurent"}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <select id="liste_et" onchange="afficher_info_etudiant_ou_pas(this.value,'admin')"> <option value="">Choix d'un pharmacien</option><option value="11111">Brankaer jean Pierre pour HUBERT Laurent</option><option value="222222">Cousin Jean Luc pour HUBERT Laurent</option><option value="35654">Jamon Jose pour HUBERT Laurent</option></select>
Je n'obtiens que 3 valeurs alors qu'il y en a 5.
Voici le code PHP qui génère la chaine json :
Et voici le code javascript qui génère la liste de sélection :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 if($_POST['choix_admin'] == 'pharmaciens') { $sql_mds = "SELECT * , etudiants.Prenom AS etudiant_prenom, etudiants.Nom AS etudiant_nom, pharmaciens.Nom AS pharmacien_nom FROM etudiants_pharmaciens INNER JOIN etudiants ON etudiants.Matricule = id_etudiants INNER JOIN pharmaciens ON pharmaciens.INAMI = id_pharmaciens ORDER BY pharmaciens.nom, etudiants.nom "; //echo $sql_mds; $query_mds = mysql_query($sql_mds); while($res = mysql_fetch_array($query_mds)) { $return .='"'.$res["INAMI"].'":"'.$res["pharmacien_nom"].' '.$res["Prenom"].' pour '.$res['etudiant_nom'].' '.$res['etudiant_prenom'].'",'; }
Voyez-vous où se trouve le problème ?
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 leretour = xhr.responseText; //alert(leretour); emptySel(document.getElementById('liste_et')); MesOption=eval("(" + leretour + ")"); for (key in MesOption) { LeTexte = MesOption[key]; LaValeur = key; //alert(LaValeur); var NewOption = document.createElement('option'); NewOption.value = LaValeur; NewOption.innerHTML=LeTexte; document.getElementById('liste_et').appendChild(NewOption); }
Merci d'avance.
beegees
Partager