[AJAX] Récuperer une variable passée avec 'xmlHttprequest' dans un script PHP
Bonjour à tous. C'est la première fois que je pose une question.
Je voudrais récupérer, dans un script PHP, une variable passée depuis un javascript par XmlHTTPRequest.
Je l'envoie en GET, et je fais un $_GET[toto] dans mon PHP, mais ça ne marche pas. Je vous joins mon ficheir Javacript et mon fichier PHP.
Merci à ceux qui pourraient m'aider.
Mon JAVASCRIPT: appel_extractbis.php
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
|
<script langage=javascript>
var toto= 10;
var data = "toto="+toto;
alert (data);// ceci ext juste une vérification
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
}
//appel script PHP
xhr_object.open("GET", "extractbis.php", true);
//retour
xhr_object.onreadystatechange = function()
{
if(xhr_object.readyState == 4){
document.write(xhr_object.responseText);
}
}
xhr_object.send(data);
</script> |
Mon PHP: extractbis.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<?php
header('Content-type: text/html; charset=iso-8859-1');
// on se connecte à MySQL et on selectionne la base
mysql_connect ('localhost','root','');
mysql_select_db('tarot')or die ("pas de connection");
// on crée la requete
//$req= "SELECT * FROM lames WHERE Id = 22"; // ça, ca marcherait
$req= "SELECT * FROM lames WHERE Id ="+$_GET['toto']+"";// ça marche pas
echo $req, '<br>';
//on envoie la requete
$rep = mysql_query($req) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
mysql_close();
//on crée la chaine de retour de la requete
while($data = mysql_fetch_assoc($rep))
{ // on l'affiche
$retour = $data['Id']." - ".$data['Nom']." - ". $data['Def_Endroit'].'|';
}
echo $retour;
?> |
Merci et Bravo: ça marche.
Tout est dans le titre. Ca marche, sauf que dans la construction de ma requête, j'utilisai "+" pour concaténer. J'ai remplacé par un point, et ce le fait.
J'ai eu quelques difficultés pour passer plusieurs variables, mais je l'ai fait par une chaine de caractères que je transforme en tableau avec 'explode'.
Mon 'document.write' fonctionne très bien, mais je n'en ai pas besoin, c'etait juste une vérification. Je vais mettre les infos en retour dans une balise <title>
MERCI encore.