[AJAX] génération de Select à l'aide de DOM et compatibilité Firefox2/IE7
Bonjour,
J'étais venu il y a peu de temps pour un problème en Ajax, et j'ai appris qu'il me fallait utiliser les DOM...
Maintenant, tout fonctionne à une exception près: un select à générer...
J'arrive à afficher le résultat de ma requête en générant le select avec des "createElement", tout s'affiche, mais pas moyen de récupérer les données... Me manquerait-il quelque chose ou bien j'ai juste merdé / oublié un truc?
Voici mon 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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
function refreshTasks(elt)
{
if(elt.value!=0)
{
XmlHttp=getXmlHttpObject();
XmlHttp.onreadystatechange=stateChangedRefreshTasks;
XmlHttp.open("GET","MesTachesListeT.php?dpt="+elt.value,true);
XmlHttp.send(null);
}
}
function stateChangedRefreshTasks()
{
if(XmlHttp.readyState==4)
{
vider("tasks");
document.getElementById("h").value=0;
document.getElementById("h").disabled=true;
document.getElementById("min").value=0;
document.getElementById("min").disabled=true;
// Récupération de la liste des tâches
var reg = new RegExp('[|]+');
var reg2 = new RegExp('[:]+');
var resultats = XmlHttp.responseText.split(reg);
// Construction du SELECT
var sel = document.createElement('select');
sel.className = "smaller";
sel.name = "cxTask";
sel.id = "cxTask";
sel.onchange = function(event) {refreshVolDur(this);};
// Génération des OPTION
for( var i = 0 ; i<resultats.length ; i++ )
{
var option = document.createElement('option');
ssRes = resultats[i].split(reg2);
option.value = ssRes[0];
option.text = ssRes[1];
sel.appendChild(option);
}
ajouter("tasks",sel);
}
}
...
<?php
echo '
<td align="center">
<select name="cxDep" id="cxDep" class="smaller" onChange=\'refreshTasks(this);\'>
<option value="0" />';
$req=mysql_query("SELECT * FROM DEPARTEMENT;") or die("Récupération des départements: ".mysql_error());
while($res=mysql_fetch_array($req))
{
echo '
<option value="'.$res["num_dep"].'">'.$res["nom_dep"].'</option>';
}
echo '
</select>
</td>';
?> |
Merci ^^