IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Récuperer une variable passée avec 'xmlHttprequest' dans un script PHP


Sujet :

AJAX

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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;	
    ?>

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut et bienvenue sur les forums de dvp.com,

    Si tu es en GET, alors tout passe par l'url:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     xhr_object.open("GET", "extractbis.php?"+data, true);   
     //retour  
     xhr_object.onreadystatechange = function() 
    	{   
        if(xhr_object.readyState == 4){
    	//ATTENTION A CETTE LIGNE 
           document.write(xhr_object.responseText); 		
    	}
     } 
    //pas de paramètre à passer
      xhr_object.send();   
    Ce serait différent en POST.
    Et fais attention car ton document.write t'envoie dans le décor : utilise un innerHTML

    ERE

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut 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.

Discussions similaires

  1. Integration d'une lecteur media avec JavaScript dans un Site PHP
    Par karamovic dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/05/2012, 20h01
  2. utiliser une variable d'environement Windows dans un script
    Par pierre.zelb dans le forum VBScript
    Réponses: 2
    Dernier message: 29/11/2006, 15h50
  3. Récuperer une variable dans un autre cadre (frame)
    Par melhima dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/07/2006, 13h32
  4. [Tableaux] récuperer une variable tableau passé par URL
    Par molesqualeux dans le forum Langage
    Réponses: 2
    Dernier message: 23/12/2005, 01h12
  5. Réponses: 4
    Dernier message: 05/10/2005, 18h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo