recontruction de liste déroulante
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 :
Code:
emptySel(document.getElementById('list_supp_manip'));
Voici le code de ma fonction :
Code:
1 2 3 4 5 6 7 8 9
|
function emptySel(sel)
{
//alert(sel);
while(sel.options[0])
{
sel.removeChild(sel.options[0])
}
} |
J'essaie de construire ma liste déroulante avec ce code javascript :
Code:
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);
} |
Ma liste se vide mais je ne remplit pas.
L'alerte suivante ne se lance pas :
Code:
1 2
| MesOption=eval("(" + retour + ")");
alert(MesOption); |
J'ai pourtant un retour de PHP qui est le suivant :
Citation:
{"acridine orange","cycle cellulaire","apoptose TUNEL","apoptose annexin V","Autre"}
Voici mon code PHP au cas où :
Code:
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);
?> |
Edit :
Le problème doit provenir de ce code :
Code:
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> |
C'est la page qui contient la liste déroulante et qui contient l'évènement onchange.
Le code généré de la liste déroulante originale :
Code:
1 2
|
<select id="list_supp_manip" onchange="Supprimer_manipulation(this.value)"> |
Le code de la liste déroulante après génération :
Code:
1 2
|
<select id="list_supp_manip" onchange="Supprimer_manipulation(this.value)"> </select> |
Le problème devrait donc provenir d'ici.
Merci d'avance.
beegees