par
Eliphas » 23 juil. 2007, 11:53
Salut,
je connais très peu Ajax et pour utiliser un peu cette technologie, j'essaie de coder des choses que je sais faire en PHP/SQL classique.
Ce que j'aimerais faire, donc, c'est alimenter un tableau avec le résultat d'une requête SQL que je compte traiter en Ajax. Dans ma page j'ai donc
La fonction qui est appelée en cliquant sur un lien est la suivante :
Code : Tout sélectionner
function chercheCraftDispo(id_metier){
var xhr_object = null;
if(window.XMLHttpRequest) //pour Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) //Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else{
alert("Votre navigateur ne supporte pas les requetes");
return;
}
xhr_object.open("POST","ajax/chercheCraft.php",true);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4)
eval(xhr_object.responseText);
}
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var data = "id_metier="+id_metier;
xhr_object.send(data);
}
Rien de très sorcier apparement, c'est le minimum syndical pour envoyer quelque-chose à une autre page. Cette autre page est la suivante :
Code : Tout sélectionner
header('Content-type: text/html; charset=iso-8859-1');
$id_metier = $_POST['id_metier'];
echo "ligne = document.createElement ('tr');";
echo "cell = document.createElement ('td');"
echo "texte = document.createTextNode ('$id_metier');";
echo "cell.appendChild (texte);";
echo "ligne.appendChild(cell);";
echo "document.getElementById ('liste').appendChild (ligne);";
et je vous le donne dans le mille, rien ne se passe sur ma page alors que j'attends une ligne avec la variable $id_metier dans mon tableau. Le code Javascript fonctionne quand il est dans une page classique (il ajoute bien des lignes au tableau) mais là, ça ne veut pas.
Je ne vois pas trop comment résoudre ça, c'est probablement simple mais comme je n'ai pas d'expérience en Ajax, je ne sais pas ce qui peut le bloquer.
Merci pour tout aide apportée

Salut,
je connais très peu Ajax et pour utiliser un peu cette technologie, j'essaie de coder des choses que je sais faire en PHP/SQL classique.
Ce que j'aimerais faire, donc, c'est alimenter un tableau avec le résultat d'une requête SQL que je compte traiter en Ajax. Dans ma page j'ai donc
[code]<table align="center" id="liste"></table>[/code]
La fonction qui est appelée en cliquant sur un lien est la suivante :
[code]
function chercheCraftDispo(id_metier){
var xhr_object = null;
if(window.XMLHttpRequest) //pour Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) //Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else{
alert("Votre navigateur ne supporte pas les requetes");
return;
}
xhr_object.open("POST","ajax/chercheCraft.php",true);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4)
eval(xhr_object.responseText);
}
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var data = "id_metier="+id_metier;
xhr_object.send(data);
}
[/code]
Rien de très sorcier apparement, c'est le minimum syndical pour envoyer quelque-chose à une autre page. Cette autre page est la suivante :
[code]
header('Content-type: text/html; charset=iso-8859-1');
$id_metier = $_POST['id_metier'];
echo "ligne = document.createElement ('tr');";
echo "cell = document.createElement ('td');"
echo "texte = document.createTextNode ('$id_metier');";
echo "cell.appendChild (texte);";
echo "ligne.appendChild(cell);";
echo "document.getElementById ('liste').appendChild (ligne);";
[/code]
et je vous le donne dans le mille, rien ne se passe sur ma page alors que j'attends une ligne avec la variable $id_metier dans mon tableau. Le code Javascript fonctionne quand il est dans une page classique (il ajoute bien des lignes au tableau) mais là, ça ne veut pas.
Je ne vois pas trop comment résoudre ça, c'est probablement simple mais comme je n'ai pas d'expérience en Ajax, je ne sais pas ce qui peut le bloquer.
Merci pour tout aide apportée :)