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

Langage PHP Discussion :

Formulaire dans une boucle


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut Formulaire dans une boucle
    Bonjour,

    J'ai un problème au niveau de mon formulaire : dans celui-ci une liste d'enregistrement est affichée depuis la bdd et quand je clique sur "envoi" le message est bien envoyé avec l'id de l'enregistrement ; mais il n'envoie pas seulement celui modifié mais toute la liste d'enregistrement et donc le message ne vient pas s'ajouter dans la bdd. Je ne comprend pas trop pourquoi.... si quelqu'un a une idée !

    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
    <html>
        <head>
            <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script type="text/javascript">
     
    function envoie(formreponse){
     var message = document.formreponse.msg.value;
     var rep = document.formreponse.rep.value;
    $.ajax({
            url : "reponseamdin.php", 
            type : "POST", 
            data : "message=" + message + "&rep=" + rep,
            success : function(html){
            $('#conversation').append(html);
            $('#msg').val('');
     
            }
     
        });
    }
            </script>
        </head>
     
     
        <body>
     
            <div id="container">
            <h2>Administrateur</h2>
            <h3>Notifications</h3>
                <cite>Les questions rester sans reponses par les utilisateurs</cite>
            <div id="notification">
     
                <?php
            include'../bdd.php';
            $req = $dbh -> query('SELECT * FROM conversation WHERE reponse=""');
            echo"<table><form method='POST' name='formreponse'><tr><th>Question</th><th>Reponse</th><th>ok</th></tr>";
            while ($data = $req -> fetch()){
            $result = $data['question'];
            $rep = $data['id'];
            echo "<tr><input type='hidden' value='$rep' name='rep' id='rep'/><td>$result</td> <td><input type='text' name='msg' id='msg'/></td><td><input type='submit' onclick='envoie();'/></td></tr>";
      }
            echo"</form></table>";
            ?>
            </div>
            <div id="conversation" name="conversation"></div>
     
         </div>
        </body>
    </html>
    de plus j'envoie les données de mon formulaire grâce à une fonction js et voici ce que j'ai dans ma console :

    Nom : message.PNG
Affichages : 180
Taille : 58,2 Ko

    ensuite ma page reponseamdin est censé envoyer le message en fonction de l'id dans la bdd

    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
    <?php
     
    $message = $_POST['message'];
    $rep = $_POST['rep'];
    //si le message est vide on affiche la reponse 
     
    if (!empty($message)){
     
    include'../bdd.php';
    $req = $dbh->query("UPDATE `conversation` SET `reponse` = '$message' WHERE id = '$rep' ");
     
    }
     
    else {
        $reponse = "Le message est vide";
        echo $reponse;
    }
    ?>
    mais il affiche "Le message est vide"

    CDT

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Où vois-tu que "toute la liste" est envoyée ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut
    sur la photo dans la console il affiche :
    rep:4
    msg:
    rep:6
    msg:

    alors que si j'ai entrer le message dans la première ligne logiquement il ne devrait pas afficher le deuxième msg: vide je pense que le problème vient de la.

  4. #4
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Tu as un soucis dans ta requête ajax, tu la formate pour une requête GET :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data : "message=" + message + "&rep=" + rep,
    essaie ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    data: {
    	message: message,
    	rep: rep
    },

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut
    toujours pareil sa ne change rien et je n'ai aucun message d'erreur j'ai essayer ma requête sql directement dans ma base de donnée et sa ne vient pas de ma requête

  6. #6
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Mets un var_dump($_POST); avant le if dans ta page reponseamdin et vois le retour sous chrome.

    Aussi, dans ta boucle while, tu as :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<tr><input type='hidden' value='$rep' name='rep' id='rep'/><td>$result</td> <td><input type='text' name='msg' id='msg'/></td><td><input type='submit' onclick='envoie();'/></td></tr>";
    tu utilises donc les memes id pour tous les champs text, il doit prendre toutes les valeurs qu'il trouve, ce qui pourrait expliquer pourquoi tu as un boucle de valeur.

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut
    Effectivement ! le var_dump($_POST); ma permis de savoir qu'il n'envoyer que le dernier enregistrement et comme j'ai remplie le premier il dit que mon $_POST est vide j'ai test avec une seul ligne et sa marche mais donc comment je doit faire pour qu'il prenne en compte celui que je modifie seulement sa doit ce faire dans la boucle ?

  8. #8
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Essai ça :


    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
    <html>
        <head>
            <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script>
     
    $('.submit').click(function() {
           var message = $('#msg_'+this.id).val();
     
           $.ajax({
                   url : "reponseamdin.php", 
                   type : "POST", 
                   data : {
                         "message: message,
                         rep: this.id
                  }
                   success : function(html){
                          $('#conversation').append(html);
                          $('#msg').val('');
                   }
           });
    });
            </script>
        </head>
     
     
        <body>
     
            <div id="container">
            <h2>Administrateur</h2>
            <h3>Notifications</h3>
                <cite>Les questions rester sans reponses par les utilisateurs</cite>
            <div id="notification">
     
                <?php
            include'../bdd.php';
            $req = $dbh -> query('SELECT * FROM conversation WHERE reponse=""');
            echo"<table><tr><th>Question</th><th>Reponse</th><th>ok</th></tr>";
            while ($data = $req -> fetch()){
            $result = $data['question'];
            $rep = $data['id'];
            echo "<tr><td>$result</td> <td><input type='text' name='msg' id='msg_'".$rep."/></td><td><button  class='submit' id='".$rep."'>Valider</button></td></tr>";
      }
            echo"</table>";
            ?>
            </div>
            <div id="conversation" name="conversation"></div>
     
         </div>
        </body>
    </html>

    Je n'ai pas tester, mais l'idée est là.

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut
    j'ai tester le code et au moment ou je clique sur "Valider" il ne se passe rien

  10. #10
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Ajoute une alerte dans la fonction du submit pour voir si il est bien appelé.

    et regarde dans le journal javascript si je n'aurai pas fais une erreur de code (ctrl+maj+j sous chrome)

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut
    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
    <html>
        <head>
            <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script>
     
    $('.submit').click(function() {
        alert("ok");
           var message = $('#msg_'+this.id).val();
     
           $.ajax({
                   url : "reponseamdin.php", 
                   type : "POST", 
                   data : {
                         message: message,
                         rep: this.id
                  },
                   success : function(html){
                          $('#conversation').append(html);
                          $('#msg').val('');
                   }
           });
    });
            </script>
        </head>
     
     
        <body>
     
            <div id="container">
            <h2>Administrateur</h2>
            <h3>Notifications</h3>
                <cite>Les questions rester sans reponses par les utilisateurs</cite>
            <div id="notification">
     
                <?php
            include'../bdd.php';
            $req = $dbh -> query('SELECT * FROM conversation WHERE reponse=""');
            echo"<table><tr><th>Question</th><th>Reponse</th><th>ok</th></tr>";
            while ($data = $req -> fetch()){
            $result = $data['question'];
            $rep = $data['id'];
            echo "<tr><td>$result</td> <td><input type='text' name='msg' id='msg_'".$rep."/></td><td><button  class='submit' id='".$rep."'>Valider</button></td></tr>";
      }
            echo"</table>";
            ?>
            </div>
            <div id="conversation" name="conversation"></div>
     
         </div>
        </body>
    </html>
    Nom : Capture.PNG
Affichages : 146
Taille : 37,6 Ko

    non effectivement il ne l'appel pas pourtant je ne vois aucune erreur..

  12. #12
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Je viens de tester, ça fonctionne bien

    Tu travail en local sur ton pc ou sur un serveur distant ?

  13. #13
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut
    désolée du retard je travail sur Cloud9 donc je ne pense pas que sa vient de la et pourquoi rien ne se passe quand je clique sur valider ?

  14. #14
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Est-ce possible d'avoir l'url pour regarder ?
    Il y a forcément une erreur quelque part.

  15. #15
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SyntaxError: missing } after property list
    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data : 'message=' + message + '&rep=' this.id,
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    data : {
                         message: message,
                         rep: this.id
                  },

  16. #16
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut
    c'est fait

  17. #17
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    J'ai fais une erreur toute bête

    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
     $(function() {
    			$('.submit').click(function() {
    				alert("ok");
    				   var message = $('#msg_'+this.id).val();
    				   $.ajax({
    						   url : "reponseamdin.php", 
    						   type : "POST", 
    						   data : {
    								 message: message,
    								 rep: this.id
    						  },
    						   success : function(html){
    								  $('#conversation').append(html);
    								  $('#msg').val('');
    						   }
    				   });
    			})
    		});

    EDIT:

    Attention aussi, l'id de msg est en dehors de tes ' '


  18. #18
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut
    aaaaa merci beaucoup !!!

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

Discussions similaires

  1. Formulaire dans une boucle
    Par JDP91 dans le forum Langage
    Réponses: 3
    Dernier message: 14/11/2016, 18h29
  2. Récupérer Post formulaire dans une boucle php
    Par spawns dans le forum AJAX
    Réponses: 4
    Dernier message: 24/09/2015, 09h29
  3. formulaire avec champs de texte dans une boucle
    Par sssmix dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/04/2008, 16h03
  4. Formulaire dans une boucle while
    Par starr dans le forum Langage
    Réponses: 3
    Dernier message: 09/01/2007, 08h27
  5. Réponses: 8
    Dernier message: 17/06/2006, 23h39

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