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 :

data Json qui n'arrive pas à destination


Sujet :

AJAX

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Août 2013
    Messages : 45
    Points : 15
    Points
    15
    Par défaut data Json qui n'arrive pas à destination
    Bonjour,

    Après quelques heures d'incompréhension, je me décide à faire appel à un ami. (oui toi ;-)

    Dans le petit bout de code qui va suivre, les variables juste avant l'appel d'AJAX sont bien définie et return le bon résultat sur une "alert();"
    Par contre dans le fichier php de destination le $_POST n'arrive pas

    Je précise que mon code fonctionnait juste avant que j'ajoute des champs à ma table.
    J'ai beau comparer je ne vois pas ce qui cloche.
    J'ai également détourné le fichier de destination pour un autre ne contenant qu'un var_dump de la variable POST renvoyée par Ajax. Résultat = NULL

    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
    28
    29
    30
    31
       $('.btn-copy').click(function () {
     
            var idCopy = $(this).data('id');
            var numCopy = $(this).data('num');
            var langCopy = $(this).data('lang');
            var titleCopy = $(this).data('title');
            var contractCodeCopy = $(this).data('code');
            var regimeCopy = $(this).data('regime');
            var statutCopy = $(this).data('statut');
            var dateStartCopy = $(this).data('dateStart');
            var dateApprovalCopy = $(this).data('dateApproval');
            var noteCopy = $(this).data('note');
     
            $.ajax({
                url: "inc/vardump.inc.php",
                method: "POST",
                data: 
                {   numCopyPost: numCopy, 
                    langCopyPost: langCopy,
                    titleCopyPost: titleCopy, 
                    contractCodeCopyPost: contractCodeCopy,
                    regimeCopyPost: regimeCopy, 
                    statutCopyPost: statutCopy,
                    dateStartCopyPost: dateStartCopy, 
                    dateApprovalCopyPost: dateApprovalCopy,
                    noteCopyPost: noteCopy
                },
                dataType: "Json"
            });
            location.reload();
        });
    Résultat :

    ! ) Notice: Undefined index: numCopyPost in E:\wamp64\www\IFPipeTests\inc\vardump.inc.php on line 4
    Call Stack
    # Time Memory Function Location
    1 0.0000 402656 {main}( ) ...\proposalsN0.php:0
    2 0.0015 451376 include( 'E:\wamp64\www\IFPipeTests\inc\vardump.inc.php' ) ...\proposalsN0.php:15
    E:\wamp64\www\IFPipeTests\inc\vardump.inc.php:4:null

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 939
    Points : 44 109
    Points
    44 109
    Par défaut
    Bonjour,
    juste une question, que viens faire cette ligne
    dans ton code ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Août 2013
    Messages : 45
    Points : 15
    Points
    15
    Par défaut
    recharger la page et je dois même le mettre sur (true) lorsqu'il s'agit des cases à cocher multiple sinon il n'y a que ma vue (écran) qui est raffraichie

    pq ?

    Dans le doute je viens d'essayer sans mais ça n'y change rien.

    Voici mon code test qui lui fonctionne très bien et le POST arrive bien dans mon fichier 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
     
    $('.btn-copy').click(function () {
            var cmdId = $(this).data('id');
            var cmdNum = $(this).data('num');
            var cmdTitle = $(this).data('title');
     
            $.ajax({
                url: "manager.php",
                method: "POST",
                data: {cmdNumCopy: cmdNum, cmdTitleCopy: cmdTitle},
                dataType: "Json"
            });
            location.reload();
        });

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 939
    Points : 44 109
    Points
    44 109
    Par défaut
    Juste que je ne vois pas l'intérêt d'utiliser Ajax si l'on veut recharger la page.

    Ton soucis est à voir côté serveur comme l'indique le message d'erreur
    ! ) Notice: Undefined index: numCopyPost in E:\wamp64\www\IFPipeTests\inc\vardump.inc.php on line 4
    Call Stack

  5. #5
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Août 2013
    Messages : 45
    Points : 15
    Points
    15
    Par défaut
    Sauf erreur de ma part, cette erreur est générée parce que je met un var_dump sur une variable qui n'existe pas.
    Lorsque je le retire plus d'erreur. Pas de transmission de données non plus ...

    Alors pourquoi Ajax ?

    Car j'ai utilisé des boutons bootstrap qui sont généré dans un tableau avec une boucle et donc un bouton par enregistrement. Je n'avais pas la possibilité
    d'utiliser un formulaire pour avoir un traitement immédiat dans mon tableau

    Donc jquery et de fait : Ajax

  6. #6
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Points : 3 965
    Points
    3 965
    Par défaut
    si tu utilises les outils de développement web de ton navigateur, la partie réseau, tu verras ce que fait ta requête, et notamment quelles données sont transmises en entête http, ce qui est le principe du POST
    Émotion
    Infantilisation
    Culpabilisation

    Christophe Alévèque - 18 Mars 2021

  7. #7
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Août 2013
    Messages : 45
    Points : 15
    Points
    15
    Par défaut
    je n'ai rien vu d'anormal dans le network du navigateur que des codes 200 et un 302 à cause d'une redirection :

    J'ai simplifié mon code au maximum pour tester et rien à faire ...

    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
     
        $('.btn-copy').click(function () {
     
            var numCopy = $(this).data('num');
     
     
            alert('Variables attribuées pour numCopy : '+ numCopy);
     
             $.ajax({
                url: "manager.php",
                method: "POST",
                data: {numCopyPost: numCopy},
                dataType: "Json"
            });
        });
    L'alert est bonne donc la donnée est bien là
    Mais le var_dum dans mon manager.php est null

    je sèche là

    Serait il possible que phpmyadmin ou la config de ma db empêche une variable POST d'arriver à Destination ???

  8. #8
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Août 2013
    Messages : 45
    Points : 15
    Points
    15
    Par défaut
    J'aimerais également comprendre la capture d'écran ci-dessous.

    Des var_dump() des fichiers post attendu envoyé par ajax renvoi "null" dans le navigateur mais la console me dit que POST est 200 et mieux encore, me donne le contenu des variables

    ....

    Nom : ajaxPost.JPG
Affichages : 391
Taille : 189,6 Ko

  9. #9
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Points : 3 965
    Points
    3 965
    Par défaut
    on voit pas bien: ta copie d'écran est tronquée, mais à mon avis ce que tu montres avec ta flèche ce n'est pas ce que t'affiche ton navigateur

    je sais pas trop ce que tu fais ni comment tu le fais, mais juste en dessous de ton POST HTTP, tu as un GET HTTP qui a l'air d'appeler la même page (manager.php ?), et celle ci est issue du cache... puis un autre GET vers proposalsN0.php

    tout est tronqué, difficile de lire du coup, fais un effort pour montrer un screenshot présentable, et explique nous mieux comment s'enchainent tes appels.

    par ailleurs un POST HTTP passe tes paramètres dans l'entête HTTP, donc plutôt que d'affoicher le résultat HTML, tu peux aussi vérifier la partie "en-têtes", la partie requête notamment
    Émotion
    Infantilisation
    Culpabilisation

    Christophe Alévèque - 18 Mars 2021

  10. #10
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Points : 3 965
    Points
    3 965
    Par défaut
    autres remarques :
    json sans majuscule sur le principe, et ton serveur retourne du text/html si on se fie au débogueur réseau
    dataType: "json" c'est le format attendu de la réponse HTTP.
    Émotion
    Infantilisation
    Culpabilisation

    Christophe Alévèque - 18 Mars 2021

  11. #11
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 939
    Points : 44 109
    Points
    44 109
    Par défaut
    Il y a également quelque chose d'intrigant sur cette capture d'écran c'es que l'on peut voir deux requêtes à manager.php
    Fichier Méthode Résultat Reçu
    manager.php POST 200 740 O
    manager.php GET 200 à partir du cache

  12. #12
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Août 2013
    Messages : 45
    Points : 15
    Points
    15
    Par défaut
    Bon je reviens alimenter mon post car je suis toujours face au même problème.
    Concernant le début du post j'avais fini par trouver une alternative sans Ajax mais je me rend compte que tôt ou tard, ajax est incontournable.
    Mon problème actuel est de récupérer une valeur dans une <selected> valeur qui issue d'une requête php mais qui se récupère bien dans la variable jquery.
    Et de l'envoyer par AJAX dans mon fichier php qui manage les requêtes pour m'en servir dans une condition "WHERE"

    au niveau des requêtes tout est fonctionnel puisque si je mets une valeur directement dans le WHERE tout s'affiche comme il le faut.

    donc voici deux jours que je me casse les dents sur ce problème.

    J'en suis au point de tester avec UN input alimenté par un nombre que je récupère en Jquery dans une variable vérifiée ok
    et là c'est le drame, aucune communication avec le fichier en url ...
    que ça soit en html - text ou json
    De plus j'ai du chipoter un peu trop car hier les envoi en POST Retournait "data sauved" sans que php ne soit alimenté pour autant mais bon il est à noter que j'ai empiré la situation.

    Je vais donc détailler :

    mon input de test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <input type="text" id="testInput" value="30">
    mon jquery :
    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
     
    <script>
    $(function() {
        $("#testInput").click(function()
        { 
           var select = $('#testInput').val();
     
           console.log(select); 
     
            $.ajax({
                type: "POST",
                dataType: "json",
                url: "managTest.php",
                data: {orderSelect: select},
                success: function(msg){alert( "Data Saved " + msg)},
                error: function(err){alert(err.responseTex)}
            });     
        });
    });
    </script>
    Mon fichier php de test créé pour l'occasion :

    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
     
    <?php
    try
    {
    //=============== Connexion DB ================================================
        $bdd = new PDO('mysql:host=localhost;dbname=ifpipe_db;charset=utf8','root','');
        $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     
     
     
     // $reqTitle = $bdd->query('SELECT title, idOrders FROM orders WHERE idOrders = 32'); // <-- OK
     
       Var_dump($_POST['orderSelect']);
     
     
     
     
     
    }
    catch(Exception $e)
    {   
        die('Erreur :' .$e->getMessage());
    }
    ?>
    dont le résultat est :

    ( ! ) Notice: Undefined index: orderSelect in E:\wamp64\www\IFPipe_1.0a\managTest.php on line 12
    Call Stack

    ...\managTest.php:0
    E:\wamp64\www\IFPipe_1.0a\managTest.php:12:null

  13. #13
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Points : 3 965
    Points
    3 965
    Par défaut
    Salut
    Tu as réfléchi 2 minutes à ce qui t'as déjà été répondu ? Parce que mine de rien tu n'as pas pris la peine de répondre aux personnes qui eux ont pris la peine justement de réfléchir à ton problème.
    Émotion
    Infantilisation
    Culpabilisation

    Christophe Alévèque - 18 Mars 2021

  14. #14
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Août 2013
    Messages : 45
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par fredoche Voir le message
    Salut
    Tu as réfléchi 2 minutes à ce qui t'as déjà été répondu ? Parce que mine de rien tu n'as pas pris la peine de répondre aux personnes qui eux ont pris la peine justement de réfléchir à ton problème.
    Il ne faut pas voir malice là où il n'y en a pas .... comme je l'ai dit, j'ai changé d'orientation pensant pouvoir me passer d'Ajax ... de ce fait :
    Comment veux tu que que je continue à répondre sur du code qui n'existe plus en l'état ?

    Comme je l'ai expliqué lors de la reprise du post (si tu as pris deux minutes pour le lire) je vois que c'est très difficile de s'en passer et donc je l'actualise.

    D'ailleurs tu noteras que je n'ai plus posté d'infos tronquées

  15. #15
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Points : 3 965
    Points
    3 965
    Par défaut
    mais que ta variable n'est toujours pas définie, même cause, même effet peut-être ?
    Émotion
    Infantilisation
    Culpabilisation

    Christophe Alévèque - 18 Mars 2021

  16. #16
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Août 2013
    Messages : 45
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par fredoche Voir le message
    mais que ta variable n'est toujours pas définie, même cause, même effet peut-être ?
    Mais lol, la non définition de mes variables c'est l'effet pas la cause... Je vous sollicite pour trouver cette cause ... Si quelqu'un a quelque chose à en dire (d’intéressant) Je lui en serai gré...

    Je rappelle pour ne pas perdre le fil :

    La variable Jquery est initialisée et correctement assignée.
    La requête du côté serveur est fonctionnelle dès l'instant où j'insère une valeur à ma variable POST pour tester.

    J'en viens à la conclusion que AJAX ne communique pas avec mon fichier php
    J'ai donc créé un nouveau fichier que j'ai placé dans le même répertoire que mon script.
    Sans requête
    J'ai revu tous mes liens pour jquery et Ajax et ils sont présents.

    Et là je sèche je ne sais plus quoi faire.

  17. #17
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Points : 3 965
    Points
    3 965
    Par défaut
    intéressant, oui ... c'est cela

    déjà ton post ajax est appelé dès que tu cliques dans ton champ.

    essaie avec ce code là voir si ça change quelque chose

    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
    <script>
    $(function() {
        $("#testInput").click(function()
        { 
           var select = $('#testInput').val();
     
           console.log(select); 
     
            $.ajax({
                type: "POST",
                dataType: "json",
                url: "managTest.php",
                data: {orderSelect: "tsouintsouin"},
                success: function(msg){alert( "Data Saved " + msg)},
                error: function(err){alert(err.responseTex)}
            });     
        });
    });
    </script>
    Émotion
    Infantilisation
    Culpabilisation

    Christophe Alévèque - 18 Mars 2021

Discussions similaires

  1. Courriels qui n'arrivent pas à destination, en sortie ou en entrée
    Par ApprentiHumain dans le forum Hébergement
    Réponses: 0
    Dernier message: 26/11/2015, 01h24
  2. Réponses: 2
    Dernier message: 13/11/2012, 10h27
  3. [Mail] E-mail qui n'arrive pas à destination
    Par floboss dans le forum Langage
    Réponses: 6
    Dernier message: 04/05/2009, 18h32
  4. [WLM] messages qui n'arrivent pas
    Par sami_b dans le forum Messagerie instantanée
    Réponses: 5
    Dernier message: 23/05/2008, 15h28
  5. [Orange] Probleme de pieces jointes qui n'arrivent pas
    Par hahlex dans le forum Internet
    Réponses: 6
    Dernier message: 30/06/2007, 19h32

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