J'essaye de m'initier à l'AJAX et de ce côté en mode responseText tout se passe bien.
Cependant voulant allez un peu plus loin j'essaye la partie xml de l'AJAX et là je coince.
Voici l'xml envoyé depuis AJAX : via
$xml = '<?xml version="1.0" encoding="ISO-8859-1"?>
<articles>'.$xml.'</articles>';
header ("Content-Type :text/xml; charset=ISO-8859-1");
echo $xml;
où xml est une sortie de base de donnée. Firebug me donne ce résultat ci :
Code : Tout sélectionner
<?xml version="1.0" encoding="ISO-8859-1"?>
<articles>
<article>
<reference>P801</reference>
<description_fr>Lampe à cathode creuse - 37 mm Aluminium - Al</description_fr>
<description_uk>Hollow cathode lamp à cathode creuse - 37 mm Aluminium - </description_uk>
<reference_constructeur>56101220045</reference_constructeur>
<prix_client_euro>10000000</prix_client_euro>
</article>
<article>
<reference>P801</reference>
<description_fr>Lampe à cathode creuse - 37 mm Aluminium - Al</description_fr>
<description_uk>Hollow cathode lamp à cathode creuse - 37 mm Aluminium - Al </description_uk>
<reference_constructeur>200-38422-01HAB</reference_constructeur>
<prix_client_euro>2000000000</prix_client_euro>
</article>
<article>
<reference>P801C</reference>
<description_fr>Lampe à cathode creuse 37 mm codée Aluminium - Al</description_fr>
<description_uk>Hollow cathod lamp 37 mm coded Aluminium - Al</description_uk>
<reference_constructeur>5610100100</reference_constructeur>
<prix_client_euro>30000000000</prix_client_euro>
</article>
</articles>
Code : Tout sélectionner
var xhr = Donne_Http_Request(); //vers la fonction qui test XMLhttprequest
//déjà testé tout est Ok
xhr.onreadystatechange = function()
{
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if (xhr.readyState == 4 && xhr.status == 200)
{
var reponse = xhr.responseXML.documentElement;
var articl = reponse.getElementsByTagName('article'); //j'ai mis articl pour éviter les problèmes d'interaction
var html = '';
count = articl.length; //donne toujours 0 - le problème vient un peu d'ici
for (i = 0; i < count; i++)
{
html += '<div>';
html += '<span>'+ articl[i].getElementsByTagName("reference")[0].firstChild.nodeValue +'</span> - ';
html += '<span>'+ articl[i].getElementsByTagName("description_fr")[0].firstChild.nodeValue + +'</span>';
html += '</div>';
}
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('resultat_recherche').innerHTML += html;
document.getElementById('resultat_recherche').style.display='block';
}
}
// Ici on va voir comment faire du post
xhr.open("POST","ajax_tri_par_article.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send("search="+search);