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écupérer variables POST dans le script PHP


Sujet :

AJAX

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Points : 30
    Points
    30
    Par défaut [AJAX] Récupérer variables POST dans le script PHP
    Bonjour,

    J'ai un premier fichier gestion.php qui include le script.js et qui appelle ma fonction traiter(id, champ, valeur) sur un onclick.

    Tout semble fonctionner, y compris pour l'envoie en POST.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var url = "enregistrer_modifications.php";
    xhr.open("POST", url, true);
    xhr.setRequestHeader("Content-Type", "application/x-www-urlencoded");
     
    var data = "id=" + id + "&champ=" + champ + "&valeur=" + valeur;
     
    xhr.send(data)
    alert(data)
    Le alert(data) me renvoie exactement ce dont j'ai besoin, à savoir par exemple id=3&champ=marque&valeur=peuImporte

    Dans mon fichier "enregistrer_modifications.php" j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if (isset($_POST['id']) && isset($_POST['champ']) && isset($_POST['valeur']))
    {
         echo $_POST['id'];
         echo $_POST['champ'];
         echo $_POST['valeur'];
    }
    else
    {
         echo "Ca ne marche pas... Dommage";
    }
    //Je fais ensuite un UPDATE sur ma table, qui ne marche pas
    Problème : Je n'ai absolument rien qui s'affiche, comme si ce script ne s'exécutait jamais.

    Qu'est ce que j'oublie ?

    J'en ai vu rajouter en haut du script php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header("Content-Type: text/plain");
    Ca ne change rien à mon soucis.

    Merci d'avance !

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var data = "id=" + id + "&champ=" + champ + "&valeur=" + valeur;
    Le séparateur, c'est & pas $
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Points : 30
    Points
    30
    Par défaut
    C'est une erreur de recopiage, j'ai bien mis les & comme il faut
    (j'ai mis à jour le premier post)

    Rien d'autres ?

    Merci pour la réponse rapide !

    P-S: J'ai essayé de passer en GET, mais rien non plus...
    C'est comme si je n'accédais même pas au script PHP.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (isset($_POST['id']) && isset($_POST['champ']) && isset ($_POST['valeur']))
    Le If avec la majuscule et l'espace entre isset et $_POST['valeur'] ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Points : 30
    Points
    30
    Par défaut
    Corrigé, mais ça ne change rien.

    Sachant que j'utilise Wampserver, il n'y a rien de particulier à configurer par hasard ?

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Février 2006
    Messages : 81
    Points : 154
    Points
    154
    Par défaut
    dans ta fonction xhr tu ne traites pas le retour ...donc normal...le script s'execute en arriere plan.
    essaye ca
    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
     
    var url = "enregistrer_modifications.php";
    xhr.open("POST", url, true);
    xhr.setRequestHeader("Content-Type", "application/x-www-urlencoded");
     
    var data = "id=" + id + "&champ=" + champ + "&valeur=" + valeur;
     
    xhr.onreadystatechange = function(){
          if (xhr.readyState == 4 && xhr.status==200)
          {
             alert(xhr.responseText)
          }
    }
     
    xhr.send(data)
    alert(data)

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Points : 30
    Points
    30
    Par défaut
    Ok ! J'ai donc un message qui me mets les réponses aux Echo et une erreur dans la requête SQL associée
    => J'avais mis UPDATE table SET 'champ' = 'valeur' au lieu de SET champ = 'valeur'
    Une matinée de galère pour deux apostrophes mal placées.
    Faut aimer être maso des fois...

    Donc en fait, ça marchait très bien en arrière plan, sauf que l'erreur semble venir de la requête.

    Merci pour ce xhr.responseText très utile !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/04/2009, 11h29
  2. [AJAX] récupérer variable post
    Par hokidoki dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/03/2009, 16h07
  3. [MySQL] Récupérer variable tpl dans une page PHP
    Par diabli73 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/09/2008, 10h12
  4. recuperer une variable JavaScript dans un script php
    Par touf35 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/06/2008, 17h31
  5. Récupérer des variables Perl dans un script PHP
    Par barabath dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2006, 01h27

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