[AJAX] Utilisation XMLHTTPRequest
Bonjour,
J'ai un problème avec XMLHTTPRequest pour récupérer des données.
Je dispose d'un fichier index.html :
Code:
1 2 3 4 5 6 7 8 9 10
|
<table>
<tr>
<td><input value="Rechercher" name="button_rechercher" type="button" OnClick="rechercher()"; /></td>
<td><input value="Recherche avancée" name="button_rechercheavancee" type="button" OnClick="rechercheavancee()"; /></td>
</tr>
</table>
<h1>Résultat</h1>
<div id='resultat'></div> |
la partie javascript intéressante pour mon problème de ce fichier est :
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
|
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else {
alert("Problème avec votre navigateur, veuillez le mettre à jour");
xhr = false;
}
return xhr;
}
function rechercher(){
sexe=document.getElementById('select_sexe').options[document.getElementById('select_sexe').selectedIndex].text;
type=document.getElementById('auteur').options[document.getElementById('auteur').selectedIndex].text;
categorie=document.getElementById('categorie2').options[document.getElementById('categorie2').selectedIndex].text;
activite=document.getElementById('activite2').options[document.getElementById('activite2').selectedIndex].text;
niveau=document.getElementById('niveau2').options[document.getElementById('niveau2').selectedIndex].text;
departement=document.getElementById('select_departement').options[document.getElementById('select_departement').selectedIndex].text;
var xhr_recherche = getXhr();
xhr_recherche.onreadystatechange = function(){
if(xhr_recherche.readyState == 4 && xhr_recherche.status == 200){
//ici ce qu'on fait avec le resultat de la requete
alert('resultat requete'+xhr_recherche.responseText);
document.getElementById('resultat').innerHTML = xhr_recherche.responseText;
}
}
//la page a appeler sans parametre
xhr_recherche.open("POST","rechercheSimple.php",true);
xhr_recherche.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
//les parametres a mettre et l'envoi
data="sexe="+sexe+"&type="+type+"&categorie="+categorie+"&activite="+activite+"&niveau="+niveau+"&departement="+departement;
xhr_recherche.send(data);
} |
enfin le fichier rechercheSimple.php
Code:
1 2 3 4
|
<?php
echo "youpikoala"; // ;-)
?> |
Si je ne m'abuse lors de l'appuie sur le bouton rechercher d'index.html le message youpikoala devrait s'afficher en bas de la page dans la partie ayant resultat comme div.
Seulement cela ne marche pas. Suite à différents tests de débug, je sais que rechercheSimple est bien appelé mais aucun résultat ne remonte à index.html. (l'instruction alert('resultat requete'+xhr_recherche.responseText); n'affiche aucun resultat)
merci de votre aide je trouve pas mon erreur.