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 :

variable php vers jquery (ajax) et ajax vers module php


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 variable php vers jquery (ajax) et ajax vers module php
    Bonjour,

    Après quelques heures passées à écumer les forums et didacticiels en tout genre, je fais appel à un ami : "vous"

    Deux fichiers :

    Le premier listant les données en tableau

    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
     
     
            while($data = $req->fetch())
        {
     
        ?>
    <tr>
            <td>
                <span class="custom-checkbox">
                    <input type="checkbox" id="checkbox1" name="options[]" value="1">
                    <label for="checkbox1"></label>
                </span>
            </td>
        <td class="pt-3-half" contenteditable="true"><?php echo htmlspecialchars($data['id']);?></td>
        <td class="pt-3-half" contenteditable="true"><?php echo htmlspecialchars($data['num_cmd']);?></td>
        <td class="pt-3-half" contenteditable="true"><?php echo htmlspecialchars($data['title']);?></td>
        <td class="pt-3-half" contenteditable="true">xxx</td>
        <td class="pt-3-half" contenteditable="true">xxx</td>
        <td class="pt-3-half"> xxx  </td>
        <td><span class="label label-important">Pas Ok</span></td>
        <td>
            <div id="buttonInline">
                <button id="validation" data-toggle="modal" data-target="">
                    <i class="fa fa-edit"></i>
                </button>


    J'ai un problème avec le delete (les autres ne sont pas encore fonctionnels et je pense que lorsque j'aurai ma solution le reste ira)

    Donc : je voudrais en cliquant sur le bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <button id="delete" >
     <i class="fa fa-times"></i>
     <input type="hidden" id="IdSend" value="<?php echo htmlspecialchars($data['id']);?>"></input>
     </button>

    que le code jquery ci-dessous envois le contenu de l'ID vers un autre fichier qui lui contient la requête php.
    Je précise que si je place cet input dans une "form" ça fonctionne très bien.
    Mais voilà je voudrais le faire avec Ajax (pour des raisons de template et d'apprentissage)
    Je tiens à dire dès à présent que ce petit bout de code fonctionne. Utilisé à des fins de test de l'id

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $(function()
    {
        $('#delete').click(function()
        {
            alert('cliqué !');
    voici le code que je souhaiterais faire fonctionner :
    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
     
    <script>
    $(function()
    {
        $('#delete').click(function()
        {
     
        var idReceive = $('#idSend').val();
     
        $.ajax(
            {
            type: "POST",
            url: "cmdDelete.php",
            id: idReceive,
            dataType: "json",
            success: function(reponse)
            {
                alert(reponse);
            },
            error: function()
            {
                alert(error);
            }
            });          
        });
    });
    </script>
    J'ai essayé une multitude de syntaxes, le $post les htmlrequest au final j'ai ceci dans ma console :

    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
     
    Uncaught Error: Syntax error, unrecognized expression: #
        at Function.oe.error (jquery-3.3.1.min.js:2)
        at oe.tokenize (jquery-3.3.1.min.js:2)
        at oe.select (jquery-3.3.1.min.js:2)
        at Function.oe [as find] (jquery-3.3.1.min.js:2)
        at w.fn.init.find (jquery-3.3.1.min.js:2)
        at new w.fn.init (jquery-3.3.1.min.js:2)
        at w (jquery-3.3.1.min.js:2)
        at e (bootstrap.min.js:7)
        at HTMLAnchorElement.<anonymous> (bootstrap.min.js:7)
        at Function.each (jquery-3.3.1.min.js:2)
    oe.error @ jquery-3.3.1.min.js:2
    oe.tokenize @ jquery-3.3.1.min.js:2
    oe.select @ jquery-3.3.1.min.js:2
    oe @ jquery-3.3.1.min.js:2
    find @ jquery-3.3.1.min.js:2
    w.fn.init @ jquery-3.3.1.min.js:2
    w @ jquery-3.3.1.min.js:2
    e @ bootstrap.min.js:7
    (anonymous) @ bootstrap.min.js:7
    each @ jquery-3.3.1.min.js:2
    each @ jquery-3.3.1.min.js:2
    d @ bootstrap.min.js:7
    dispatch @ jquery-3.3.1.min.js:2
    y.handle @ jquery-3.3.1.min.js:2
    Précisons que je n'ai ps de fichier js personnel.

    En continuant de tester je me rends compte que la variable php n'existe pas en dehors de la boucle ... mais pourquoi et que faire ?

    Outre celà il doit également y avoir un problème dans la partie Jquery car lorsque je donne une valeur à ma variable ID elle n'est de toute façon pas envoyée non plus.
    Un simple echo("hello world") à la place de mon scrip php delete ne renvois rien

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je me suis arrêté au 1er script :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            while($data = $req->fetch())
        {
    ?>
    ...
                    <input type="checkbox" id="checkbox1"....

    un attribut id DOIT ETRE UNIQUE.

    Or là, tu mets des id "fixes" dans une boucle (while)

    Donc, il faut d'abord corriger ça.

    1- En remplaçant par des classes.

    2- ou en utilisant $data['id'] (auto-incrément, donc forcément UNIQUE) :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                    <input type="checkbox" id="checkbox<?php echo $data['id']; ?>" name="options[]" value="1">
                    <label for="checkbox<?php echo $data['id']; ?>"></label>

  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
    Merci

    Cette portion de code vient d'un exemple bootstrap je ne l'ai pas encore traité en fait ...
    Mais je corrige.

    Pas d'idée pour mon problème ?

  4. #4
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Le code que tu as posté montre que le bouton a été cliqué pas la valeur de IdSend. Que donne un alert sur cette variable ?

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $(function()
    {
        $('#delete').click(function()
        {
            alert('cliqué !');

    Dans le jquery pour l'appel ajax tu mets un type de données datatype=json. Or tu ne transmets pas de json. Essaie avec html.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  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
    J'ai fait ceci depuis :

    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
     
    <script>
    $(function()
    {
        $('#delete').click(function() 
        {  
            var idReceive = $('#idSend').val(); 
            var request = $.ajax({
                url: "cmdDelete.php",
                method: "POST",
                data: { id : 1 },
                dataType: "html"
            });
     
            request.done(function( msg ) 
            {
                alert( msg );
            });
     
            request.fail(function( jqXHR, textStatus ) 
            {
                alert( "Request failed: " + textStatus );
            });
        });
    });
    J'ai corrigé une erreur dans le code principal où idSend avait un i maj mais ça ne change rien alors le résultat du retour est :

    Localhost indique : Request Failed error j'ai remplacé le code du module php par :

    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
     
    <?php
     
    echo("test");
    echo($_POST['id']);
    /* try
     
        {
            $bdd = new PDO('mysql:host=localhost;dbname=IFPipe;charset=utf8','root','');
            
        }
        catch(Exception $e)
        {
            die('Erreur :' .$e->getMessage());
        }
            $req->bindParam(':id', $_POST['id']);
            $req = $bdd->prepare('DELETE FROM tbl_proposals WHERE id=:id');
                                  
            $req->bindParam(':id', $_POST['id']);
             
     
     
     
            $req->execute(); 
            $req->closeCursor();
     */       
     
    header('Location: cmdList.php');
     
    ?>
    sans succès.

  6. #6
    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
    ha oui,
    ceci :
    est en réalité :
    ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     data: { id : idReceive },
    j'avais essayé en assignant une valeur définie pour voir mais c'est pas ça non plus.

  7. #7
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    ha non.

    La réponse que j’ai faite, bonne ou mauvaise, a été faite sur le code que tu as posté. Et là je vois que tu l’appliques sur du code que tu as modifié entre temps. C’est certain ça ne pourra jamais marcher.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  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
    Pour répondre à la question que tu m'avais posé sur le code qui était celui là ça donnait " cliqué" mon alert fonctionnait pour me dire que l'appuie sur le bouton était ok.
    Et pour le JSon ta remarque me semblait pertinente pour mon nouveau script aussi .... me serais je trompé là aussi ?

    Je modifie mon code car j'essaye tout ce qui me vient ou au fil de ce que je trouve sur le net.
    J'aimerais comprendre pourquoi la variable php n'est pas transmise à Jquery et aussi pourquoi même si je met une valeur fixe dans Jquery, ça n'est pas transmis à mon fichier php qui possède la requête.

    Sur cette dernière question je me dis soudainement que ça doit être parce que le script est interrompu au niveau de l'initialisation de la variable mais alors pourquoi le retour en "erreur" m'indique une variable undifined
    sur le fichier de requête php. (appelons le cmdDelete.php)

    ça m'obsède j'en rêve la nuit lol

  9. #9
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Es-tu sûr que la page est appelée ? Est-ce que le script appelé est dans le même répertoire que celui qui appelle ?
    Pour tester si un appel ajax fonctionne je fais un echo dans le script appelé que je récupère dans un div toujours via jquery.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  10. #10
    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
    La page est dans le même répertoire.
    Si je me passe de Jquery et que je place le bouton dans une form avec method et action tout fonctionne (donc script php ok)
    Si je place un echo à la place du script php même résultat d'erreur

    Donc non je ne pense pas que la page soit réellement appelée.

    Pour le moment j'ai doublé mes fichiers et renommés en test. Je simplifie mon code au max et continuerai d'enlever des éléments jusqu'à ce que ça fonctionne.

  11. #11
    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 bon, c'est ma syntaxe qui pose problème ...

    J'ai repris un code tout simple pour tester ajax :

    ceci fonctionne et me retourne bien le contenu de data :

    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
    32
    33
    34
    35
    36
    37
     
    <button id="ajax" value="Mon Test" >
        <i class="fa fa-times"></i>
     
    </button>
     
     
    <p>Résultats de l'appel ajax:</p>
    <textarea id="results"></textarea>
     
     
     
    </main>
     
    <script type="text/javascript">
    $(document).ready(function(){
     
        var monTest = $("#ajax").val();
     
         $('#ajax').click(function(){
            execScript();
         });
     
    });
     
    function execScript(){
         $.ajax({
           type: "POST",
           url: "testDelete.php",
           data: "name=John&location=Boston&foo=bar",
           success: function(msg){
             $('#results').val(msg);
         });
    }
    </script>
     
    </html>
    Par contre dès l'instant où j'essaye de récupérer le contenu de value="monTest"
    ça coince. J'ai aussi essayé en mettant le bouton en input type button

    edit : j'avais ecrit value au lieu de val dans jq donc c'est corrigé mais du coup le retour me donne

    Array
    (
    [idSend] =>
    )


    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
    32
    33
    34
    35
    36
    37
    38
     
    <input type="button" id="ajax" value="Mon Test" >
        <i class="fa fa-times"></i>
     
    </input
     
     
    <p>Résultats de l'appel ajax:</p>
    <textarea id="results"></textarea>
     
     
     
    </main>
     
    <script type="text/javascript">
    $(document).ready(function(){
     
        var monTest = $("#ajax").val();
     
         $('#ajax').click(function(){
            execScript();
         });
     
    });
     
    function execScript(){
         $.ajax({
           type: "POST",
           url: "testDelete.php",
           data: idSend,
           success: function(msg){
             $('#results').val(msg); 
          }
         });
    }
    </script>
     
    </html>

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- "ça coince" n'apporte aucune info utile...

    2- Attention à la syntaxe jQuery :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        var monTest = $("#ajax").val();
    3- Idem pour la la syntaxe HTML... (<input>)

    Sois plus rigoureux...

  13. #13
    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
    Comme je l'avais dit je suis reparti de zéro.

    Lorsque j'ai obtenu un code qui a fonctionné j'ai essayé de l'intégrer dans le miens.
    J'ai bien avancé, j'ai maintenant des retours.

    J'ai par contre rencontré un nouveau problème dont je ne conceptualise pas la solution.

    Comme cela m'a judicieusement été rappelé, un ID doit être unique et j'ai commis cette erreur non pas une fois, mais deux fois -->

    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
     
         <?php
                            while($data = $req->fetch())
                        {
                            
                        ?>
                    <tr>
                        <td>
                            <span class="custom-checkbox">
                                <input type="checkbox" id="<?php echo($data['id']);?>" name="options[]" value="">
                                <label for="checkbox1"></label>
                            </span>
                        </td>
                        <td class="pt-3-half" contenteditable="true"><?php echo htmlspecialchars($data['id']);?></td>
                        <td class="pt-3-half" contenteditable="true"><?php echo htmlspecialchars($data['num_cmd']);?></td>
                        <td class="pt-3-half" contenteditable="true"><?php echo htmlspecialchars($data['title']);?></td>
                        <td class="pt-3-half" contenteditable="true">xxx</td>
                        <td class="pt-3-half" contenteditable="true">xxx</td>
                        <td class="pt-3-half"> xxx  </td>
                        <td><span class="label label-important">Pas Ok</span></td>
                        <td>             
                            <div id="buttonInline">
                                <button id="delete">
                                    <i class="fa fa-times"></i>
                                    <input type="hidden" id="idSend" value="<?php echo($data['id']);?>"></input>
                                </button>      
                            </div>
                        </td> 
                        <?php }
                        $req->closeCursor();?>
    Du coup, comment identifier le contenu de mon input dans jquery si j'utilise également echo($data['id']); comme id ?

    Veuillez m'excuser si tout ceci semble brouillon, pour tout vous dire je trifouille ce code depuis deux jours en ajoutant, supprimant, modifiant et au final je laisse trainer des choses qui piquent vos yeux.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                            <div id="buttonInline">
                                <button id="delete">
                                    <i class="fa fa-times"></i>
                                    <input type="hidden" id="idSend" value="<?php echo($data['id']);?>"></input>
                                </button>      
                            </div>

    Non seulement tu mets un input dans un bouton
    mais tu mets ENCORE des id "fixe", alors qu'on est ENCORE dans une boucle while !

    Tu ne peux pas t'en sortir si tu fais de la bouillie avec le code...

    Je répète : il faut être RIGOUREUX !

    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                            <span class="custom-checkbox">
                                <input type="checkbox" id="checkbox<?php echo($data['id']);?>" name="options[]" value="" />
                                <label for="checkbox<?php echo($data['id']);?>"></label>
                            </span>
    ....
                            <div class="buttonInline">
                                <button class="btn-delete" data-id="<?php echo($data['id']);?>"><i class="fa fa-times"></i></button> 
                            </div>

    Voilà l'ASTUCE : on utilise un attribut data-* pour identifier la ligne !

    En jQuery, ça se récupère avec :
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    var idSend = $(this).data('id'); // $(this) désigne le bouton cliqué

    Et du coup, on peut cibler la checkbox :
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    var checkbox _val = $('#checkbox'+idSend).val();
    Dernière modification par Invité ; 18/10/2018 à 16h13.

  15. #15
    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
    Rigoureux, Rigoureux, j'essaye !

    Je me suis sans doute mal exprimé car je ne voulais pas intégrer la check box tout de suite, je l'ai placé là en attendant pour traitement futur (éventuel)
    ceci dit l'astuce me servira.

    A ma décharge, dans mon message précédent, je fais état de ce second id placé dans la boucle, je l'ai laissé ne sachant pas quoi mettre ...

    Ceci étant dit, j'ai adapté mon code mais semble t'il pas encore de façon assez rigoureuse car je n'ai pas de retour.
    Je le remet entier.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
               <table class="table table-bordered table-responsive-md table-striped text-center">
                    <tr>
                        <th>
                            <span class="custom-checkbox">
                                <input type="checkbox" id="selectAll">
                                <label for="selectAll"></label>
                            </span>
                        </th>
                        <th class="text-center">id</th>
                        <th class="text-center">N° Commande</th>
                        <th class="text-center">Titre</th>
                        <th class="text-center">Remarques</th>
                        <th class="text-center">Date Début</th>
                        <th class="text-center">Date de fin</th>
                        <th class="text-center">Etat</th>
                        <th class="text-center">Action</th>
                    </tr>
                        <?php
                            while($data = $req->fetch())
                        {
                            
                        ?>
                    <tr>
                        <td>
                            <span class="custom-checkbox">
                                <input type="checkbox" id=""checkbox<?php echo($data['id']);?>" name="options[]" value="">
                                <label for="checkbox1"></label>
                            </span>
                        </td>
                        <td class="pt-3-half" contenteditable="true"><?php echo htmlspecialchars($data['id']);?></td>
                        <td class="pt-3-half" contenteditable="true"><?php echo htmlspecialchars($data['num_cmd']);?></td>
                        <td class="pt-3-half" contenteditable="true"><?php echo htmlspecialchars($data['title']);?></td>
                        <td class="pt-3-half" contenteditable="true">xxx</td>
                        <td class="pt-3-half" contenteditable="true">xxx</td>
                        <td class="pt-3-half"> xxx  </td>
                        <td><span class="label label-important">Pas Ok</span></td>
                        <td>             
                            <div class="buttonInline">
                                <button class="btn-delete" data-id="<?php echo($data['id']);?>"> 
                                    <i class="fa fa-times"></i>                            
                                </button>      
                            </div>
                        </td> 
                        <?php }
                        $req->closeCursor();?>
                    </tr>               
                </table>
     
     <p>Résultats de l'appel ajax:</p>
    <textarea id="results"></textarea> 
     
     
            </div>
        </div>
    </div>
     
    </main>
     
    <script>
    $(function()
    {
        $('.btn-delete').click(function() 
        {  
            var idReceive = $(this).data('id');
     
            $.ajax({
                url: "cmdDelete.php",
                method: "POST",
                data: idReceive,
                dataType: "html",
                success: function(msg){
             $('#results').val(msg);} 
             });
        });
    });
     
    </script>
     
    </body>
    </html>
    edit 1 : je vais encore me faire allumer : 20 min pour me rendre compte que btn-delete c'est pas btn_delete je fatigue visiblement mes excuses, j'édit après l'essai.
    edit 2 : c'est mieux une fois corrigé, ça renvois un tableau mais celui-ci est vide. pas de valeur id array { }

    edit 3 : à toutes fins utiles perso je ne sais pas l'interprèter :

    Nom : console1.PNG
Affichages : 1117
Taille : 27,2 Ko

  16. #16
    Invité
    Invité(e)
    Par défaut
    Quand je dis que tu manques de RIGUEUR....

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                                <input type="checkbox" id=""checkbox<?php echo($data['id']);?>" name="options[]" value="">
                                <label for="checkbox1"></label>
    Tu ne vois pas UN "défaut" ?

    Non ? Normal : il y en a TROIS !

    [EDIT] Oups ! Mea culpa...
    C'est moi qui n'avais pas corrigé complètement ton code (dans mon précédent message)...
    ...Ceci dit... il ne faut pas copier-coller "à l'aveugle" non plus.


    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                                <input type="checkbox" id="checkbox<?php echo($data['id']);?>" name="options[]" value="" />
                                <label for="checkbox<?php echo($data['id']);?>"></label>

    N.B. Tu m'expliqueras à quoi sert un <label> vide ?
    Dernière modification par Invité ; 18/10/2018 à 16h17.

  17. #17
    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
    Comme je l'ai dit dans mon précédent message, je n'utilise pas encore les checkbox c'était là pour le décors, d'ailleurs du coup je les ai retirés ...

    J'aimerais juste résoudre ce problème pour faire communiquer php, jquery après je referai mon code "rigoureusement"

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
                        </th>
                        <th class="text-center">id</th>
                        <th class="text-center">N° Commande</th>
                        <th class="text-center">Titre</th>
                        <th class="text-center">Remarques</th>
                        <th class="text-center">Date Début</th>
                        <th class="text-center">Date de fin</th>
                        <th class="text-center">Etat</th>
                        <th class="text-center">Action</th>
                    </tr>
                        <?php
                            while($data = $req->fetch())
                        {
                            
                        ?>
                    <tr>
                        <td class="pt-3-half" contenteditable="true"><?php echo htmlspecialchars($data['id']);?></td>
                        <td class="pt-3-half" contenteditable="true"><?php echo htmlspecialchars($data['num_cmd']);?></td>
                        <td class="pt-3-half" contenteditable="true"><?php echo htmlspecialchars($data['title']);?></td>
                        <td class="pt-3-half" contenteditable="true">xxx</td>
                        <td class="pt-3-half" contenteditable="true">xxx</td>
                        <td class="pt-3-half"> xxx  </td>
                        <td><span class="label label-important">Pas Ok</span></td>
                        <td>             
                            <div class="buttonInline">
                                <button class="btn-delete" data-id="<?php echo($data['id']);?>"> 
                                    <i class="fa fa-times"></i>                            
                                </button>      
                            </div>
                        </td> 
                        <?php }
                        $req->closeCursor();?>
                    </tr>               
                </table>
     
    <input type="button" id="ajax" value="Test Ajax" /><br>
     <p>Résultats de l'appel ajax:</p>
    <textarea id="results"></textarea> 
     
     
            </div>
        </div>
    </div>
     
    </main>
     
    <script>
    $(function()
    {
        $('.btn-delete').click(function() 
        {  
            var idReceive = $(this).data('id');
           // var idAjax=$("#ajax").val();
     
            $.ajax({
                url: "cmdDelete.php",
                method: "POST",
                data: idReceive,
                dataType: "html",
                success: function(msg){
             $('#results').val(msg); 
             console.log(msg);}
             });
        });
    });
     
    </script>

  18. #18
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                data: 'idReceive='+idReceive,
    A supposer que dans cmdDelete.php, tu récupères : $_POST['idReceive'].

  19. #19
    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
    ...... c'était ça.

    Non actuellement j'avais juste une fonction de test qui me renvoyait le traitement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function traitement($donnee_post){
     
        return print_r($donnee_post,true);
    }
     
    echo traitement($_POST);
    MAIS là ça MARCHE !!! MERCIIIIII

    voici le retour :

    Nom : Captureifpipe.PNG
Affichages : 1099
Taille : 23,0 Ko

    Dernière question avant de clôturer :

    j'aimerais comprendre cette syntaxe :
    data: 'idReceive='+idReceive,

    ENCORE MERCI

  20. #20
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     data: 'nom_variable='+valeur_variable,
    'nom_variable', c'est ce que tu récupère dans le fichier PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['nom_variable'] // qui vaut la valeur de valeur_variable
    avec plusieurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     data: 'nom_variable1='+valeur_variable1+'&nom_variable2='+valeur_variable2,
    On peut aussi utiliser la syntaxe json :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      data: { nom_variable : valeur_variable },
    avec plusieurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      data: { name: "John", location: "Boston" }

    Un peu de LECTURE (il y a des exemples) : jQuery.ajax()

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Lien vers lecteur vidéo ou directement vers la video et non vers l'item de liste
    Par SpaceFrog dans le forum Développement Sharepoint
    Réponses: 0
    Dernier message: 04/10/2016, 14h53
  2. Migration Jquery 1.6.2 vers jquery 2.0.2
    Par boopix dans le forum jQuery
    Réponses: 2
    Dernier message: 06/06/2013, 09h32
  3. Réponses: 2
    Dernier message: 29/02/2012, 16h37
  4. Réponses: 15
    Dernier message: 10/04/2009, 17h11
  5. [AJAX] Requete ajax sur une meme page php
    Par Bownobo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/06/2007, 11h25

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