Récupération de données d'un flux xml
Bonjour,
Comme vous pouvez vous en douter, je rencontre un souci.
Je tiens d'abors a préciser que jai bien farfouiller les divers sujets proposé par ce site concernant les listes liées. Et oui encore (désoler).
Bref c'est juste un test bateau pour moi, je m'explique je fais des liste liées pour apprendre afin de pouvoir faire des tableau avec filtre ensuite.
Donc j'ai mes listes comme ceci:
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
|
<tr>
<td width="157">Département :</td>
<td width="236">
<select name="Departement" id="Departement" onchange="request(this)";>
<option value="vide"></option>
<?php
include 'connect_bdd\connection_BDD.php';
$roq = "select * from departement";
$rop = mysql_query($roq);
while ($ros = mysql_fetch_assoc($rop) )
{
echo "<option value='".$ros['ID_DEP']."'>".$ros['ID_DEP']." ".$ros['NOM_DEP']."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td width="236">Ville :</td>
<td width="236">
<select name="Ville" id="Ville">
</select>
</td>
</tr> |
j'envoi bien une variable en POST a ma page php pour faire ma requette dont voici le 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
| <?php
include 'connect_bdd\connection_BDD.php';
//$dep = 1;
if(isset($_POST['Departement'] ) )//si le departement choisit on va ramonter les villes de ce departement
{
$departement = htmlspecialchars($_POST['Departement']);
$req = " SELECT * FROM ville WHERE ID_DEP= '$departement' ";
$rep = mysql_query($req);
header("Content-Type: text/xml");
$contenu_xml = '<?xml version="1.0" encoding="UTF-8"?>';
$contenu_xml = $contenu_xml . '<racine>';
while($res = mysql_fetch_assoc($rep) )
{
//$contenu_xml = $contenu_xml ."<item id=\"".$res['ID_VIL']."\" name=\"".htmlentities($res['NOM_VIL'], ENT_NOQUOTES, "ISO-8859-1")."\" />";
$contenu_xml = $contenu_xml ."<racine>";
$contenu_xml = $contenu_xml ."<numero>".$res['ID_VIL']."</numero> ";
$contenu_xml = $contenu_xml ."<lenom>".$res['NOM_VIL']."</lenom> ";
$contenu_xml = $contenu_xml ."</racine>";
}
$contenu_xml = $contenu_xml . '</racine>';
echo $contenu_xml;
}
?> |
L'opération se passe bien et un flux XML est renvoyé, pour affirmé ceci j'utilise Firefox avec firebug, qui m'affiche tout se qui se passe, le post, le retour xml, etc..
Bon donc je reçoit bien le flux, seulement, je reçoit un Objet de donnée, j'arrive a compter le nombre d'élément qu'il y a dedans mais je n'arrive pas a extraire les données, c'est a dire avec un simple alert(), j'obtient jamais mes informations, mais juste un objet.
Et je ne trouve pas de fonction sur internet, même avec mon ami google, pour extraire le contenu de cet objet.
je vous met mon code javascript qui fait tout cela, ici :
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
| <script type="text/javascript">
<!--
function request(oSelect)
{
var value = oSelect.options[oSelect.selectedIndex].value;
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
var monXml=xhr.responseXML;
readData(monXml);//flux bien arrivée
}
};
xhr.open("POST", "Ajax.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("Departement=" + value);
}
function readData(oData)
{
var nodes = oData.getElementsByTagName("item");
//nodes est un objet de donnée
for (var i=0; i<4;i++) {
var leId = nodes[i];
alert(leId);
}
}
</script> |
Voila je vous remercie par avance des informations que vous pourrez me fournir.