Bonjour tout le monde,
J'ai des difficultés pour reconstruire une lise déroulante après l'avoir vidée :
Je vide donc ma liste déroulante :
Voici le code de ma fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part emptySel(document.getElementById('list_supp_manip'));
J'essaie de construire ma liste déroulante avec ce code javascript :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function emptySel(sel) { //alert(sel); while(sel.options[0]) { sel.removeChild(sel.options[0]) } }
Ma liste se vide mais je ne remplit pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 MesOption=eval("(" + retour + ")"); alert(MesOption); for (key in MesOption) { LeTexte = MesOption[key]; alert(LeTexte); LaValeur = key; var NewOption = document.createElement('option'); NewOption.value = LaValeur; NewOption.innerHTML=LeTexte; document.getElementById('list_supp_manip').appendChild(NewOption); }
L'alerte suivante ne se lance pas :
J'ai pourtant un retour de PHP qui est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MesOption=eval("(" + retour + ")"); alert(MesOption);
{"acridine orange","cycle cellulaire","apoptose TUNEL","apoptose annexin V","Autre"}
Voici mon code PHP au cas où :
Edit :
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
16
17
18
19
20
21
22
23
24
25 <?php include('../connexion.php'); $sql = "DELETE FROM manips WHERE ID = ".$_POST['id']; $query = mysql_query($sql); $nombre_res = mysql_affected_rows(); $sql_select = "SELECT * FROM manips"; $query_select = mysql_query($sql_select); $return='{'; //ensuite chaque nom des options separes par des ":" while($row = mysql_fetch_assoc($query_select)) { //création de la liste déroulante des étudiants non clôturés $return .='"'.$row["nom_manip"].'",'; } //je remplace la derniere virgule par la ) dans la variable $return $return=preg_replace("/,$/","}",$return); //je retourne le rsultat a AJAX echo trim($return); ?>
Le problème doit provenir de ce code :
C'est la page qui contient la liste déroulante et qui contient l'évènement onchange.
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Ajout d'une manip </title> <script type="text/javascript" src="AJAX/Ajout_manip.js"></script> <script type="text/javascript" src="AJAX/xhr.js"></script> <script type="text/javascript" src="AJAX/Supprimer_manip.js"></script> <script type="text/javascript" src="Fonctions/vider_liste_deroulante.js"></script> </head> <body> <div id="form_ajout_manip"><input type="text" id="text_manip" size="50" /></div> <p> <input type="button" value="Ajouter cette manip" onclick="Ajouter_manip(document.getElementById('text_manip').value)" /> </p> <div id="resultat"></div> <p> </p> <p><img src="images/Point_interrogation.png" alt="Détail" width="23" height="23" /> Ajoute une manipulation </p> <div id="form_supp_manip"> <select id="list_supp_manip" onchange="Supprimer_manipulation(this.value)"> <option value="">Choisissez la manip à supprimer</option> <?php include('connexion.php'); $sql = 'SELECT * FROM manips'; $query = mysql_query($sql); while($manip = mysql_fetch_array($query)) { echo '<option value='.$manip['ID'].'>'.$manip['nom_manip'].'</option>'; } ?> </select> </div> <div id="resultat_suppression"></div> <p><img src="images/Point_interrogation.png" alt="Détail" width="23" height="23" />Supprime une manipulation</p> </body> </html>
Le code généré de la liste déroulante originale :
Le code de la liste déroulante après génération :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <select id="list_supp_manip" onchange="Supprimer_manipulation(this.value)">
Le problème devrait donc provenir d'ici.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <select id="list_supp_manip" onchange="Supprimer_manipulation(this.value)"> </select>
Merci d'avance.
beegees
Partager