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 :

Récupérer une variable après requête


Sujet :

AJAX

  1. #1
    Membre averti
    Homme Profil pro
    Urbaniste
    Inscrit en
    Décembre 2021
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Décembre 2021
    Messages : 14
    Par défaut Récupérer une variable après requête
    Bonjour à tous,

    Je réalise un formulaire actuellement et j'ai un champ type TEXTAREA que je souhaite envoyer en MAJ sur une BDD dès que la souris quitte le champ HTML.

    Mon seul et unique dernier problème depuis deux jours, est que je n'arrive pas à récupérer ma variable qui m'indiquera si ma requête a bien été réalisée.

    La partie XMLHTTPRequest
    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
    25
    26
    27
    /** FONCTION POUR METTRE A JOUR LES VALEURS DES TEXTAREA EN XMLHHTPRequest **/
    function updateValueTextarea(textarea)
    {
        goLoader(); // On affiche la roue de chargement
        var xhr = getXhr()
        var url = '../modules/actions/action_XMLHTTPRequest.php';
        var params = 'id='+textarea.id+'&textarea='+textarea.value+'';
        xhr.open('POST', url, true);
     
        xhr.onreadystatechange = function() {//Call a function when the state changes.
            if(xhr.readyState == 4 && xhr.status == 200) {
                console.log(this.response);
                var res = this.response;
     
                if (res.success == 1) {
                    alert(res.success);
                    outLoader(); // On enlève la roue de chargement car la requête est réalisée
                } 
            } else { 
               alert(res.success); 
            }
        }
        //Send the proper header information along with the request
        xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        xhr.send(params);
     
        return false;}
    La partie
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Si "Textarea" n'est pas vide alors 
    if(!empty($_POST['textarea'])) {
        $success = 1; 
        $res = ["success" => $success, "textarea" => $_POST['textarea']];
        echo json_encode($res);
    } else { 
        $success = 0;
        $res = ["success" => $success];
    }

    Le retour dans la console :

    <br />
    <font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
    <tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined index: typeInput in D:\wamp64\www\pcs\modules\actions\action_XMLHTTPRequest.php on line <i>19</i></th></tr>
    <tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
    <tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
    <tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0002</td><td bgcolor='#eeeeec' align='right'>366216</td><td bgcolor='#eeeeec'>{main}( )</td><td title='D:\wamp64\www\pcs\modules\actions\action_XMLHTTPRequest.php' bgcolor='#eeeeec'>...\action_XMLHTTPRequest.php<b>:</b>0</td></tr>
    </table></font>
    {"success":1,"textarea":"cghjk"}

    J'ai donc bien mon retour dans la console ... mais je n'arrive pas à récupérer ma valeur "success" pour vérifier dans le futur l'état du traitement de ma requête.

    Merci par avance pour la personne qui prendra le temps de répondre à ma question

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // Si "Textarea" n'est pas vide alors 
    if(!empty($_POST['textarea'])) {
        $success = 1; 
        $res = ["success" => $success, "textarea" => $_POST['textarea']];
     
    } else { 
        $success = 0;
        $res = ["success" => $success];
    }
     
     echo json_encode($res);
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 506
    Par défaut
    Bonjour,

    • Tu as une erreur Notice: Undefined index: typeInput in D:\wamp64\www\pcs\modules\actions\action_XMLHTTPRequest.php on line <i>19</i> qu'il faut d'abord s'en débarasser.
    • Utilise JSON.parse comme c'est montré ici
    • Dans tous les cas, le fichier PHP doit retourner une réponse, donc json_encode($res); est obligatoire.


    Le code doit être comme ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // Si "Textarea" n'est pas vide alors 
    if(!empty($_POST['textarea'])) {
        $success = 1; 
        $res = ["success" => $success, "textarea" => $_POST['textarea']];
     
    } else { 
        $success = 0;
        $res = ["success" => $success];
    }
    echo json_encode($res);//une seule fois à la fin.

  4. #4
    Membre averti
    Homme Profil pro
    Urbaniste
    Inscrit en
    Décembre 2021
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Décembre 2021
    Messages : 14
    Par défaut
    Merci à tous les deux.

    Je n'avais pas vu qu'il y avait une erreur dans le retour de la console, c'est ça qui m'a mis dedans

    J'ai tout simplement supprimé la partie JSON car finalement seul la variable $success m'intéresse pour savoir si tout s'est bien déroulé.

    Merci encore !

    Bonne soirée.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/04/2021, 16h34
  2. Réponses: 2
    Dernier message: 31/03/2015, 14h48
  3. Récupérer une variable après avoir chargé un fichier swf
    Par marcello67 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 12/01/2009, 09h37
  4. récupérer une variable après appel asynchrone à une jsp
    Par troussepoil dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 29/08/2008, 14h07

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