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 :


{"":"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"}
La page crée la liste déroulante mais ne mets que ceci :


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 :

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'].'",';					
 
			}
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
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);
				}
Voyez-vous où se trouve le problème ?

Merci d'avance.
beegees