[PHP] recuperation valeur checkbox

Bonjour,
j'aimerai savoir s'il vous est possible de m'indiquer la marche a suivre afin de recuperer la validation d'une ligne de valeur validée a l'aide de checkbox. je mexplike :

j'ai fé plusieurs requete qui m'ont donné un resultat sous cette forme :

id nom email acheter
1 xxx xxxx checkbox
2 xxx xxxx checkbox
3
4
etc...

si je selctionne la ligne 2 et 3, je voudrai qu'en appuyant sur un bouton ENVOYER, cela m'envoi vers une page de confirmation (confirmation.php) recapitulant le choix .
je pense cela possible mais je n'ai aucune idée de la marche a suivre.je me tiens a votre disposition pour de plus amples information. Merci d'avance pour vos reponses
Configuration: Windows XP
Internet Explorer 6.0

48 réponses

Résumé de la discussion

Récupérer la validation d'une ligne de valeurs via des checkbox et l'envoyer vers une page de confirmation (confirmation.php) constitue la problématique centrale, afin d'afficher le récapitulatif des choix sélectionnés. Plusieurs solutions convergent vers l'utilisation d'un formulaire HTML générant des inputs checkbox nom='option[i]' et d'envoyer les données par POST vers confirmation.php, où le récapitulatif programmé affiche les champs id, nom, email et achats sélectionnés. En pratique, il faut récupérer $_POST côté serveur, itérer sur les clés correspondant aux choix et générer un récapitulatif affiché sur confirmation.php, tout en protégeant les données et en gérant les cas sans sélection.

Bobot (l’IA à votre service)
  1. pour recuperer tu fait echo = $_POST["chek1"]; par exemple
    si ton nombre de checkbox varie il te faudras les nommé dynamiquement ex : check$i pour pouvoir affiche le resultat de chacune
    0
    1. j'ai un peu oublié de vous donner mon code ... veuillez m'en excuser

      $a = $_POST['departement'];
      $b = $_POST['thematique_projet'];

      $sql = "SELECT id,departement,commentaires FROM devis_table WHERE departement = '" . $a . "' AND thematique_projet = '" . $b . "'";
      $result = mysql_query( $sql) or die( "Erreur : " . mysql_error() );

      if($result) {
      // debut du tableau
      echo '<table bgcolor="#FFFFFF" align="center">'."\n";
      // première ligne on affiche les titres dans 4 colonnes
      echo '<tr>';
      echo '<td width="80" bgcolor="#9f9f9f"><b><u>id</u></b></td>';

      echo '<td bgcolor="#9f9f9f"><b><u>departement</u></b></td>';
      echo '<td bgcolor="#9f9f9f"><b><u>commentaires</u></b></td>';
      echo '</tr>'."\n";
      // lecture et affichage des résultats sur 4 colonnes, 1 résultat par ligne.
      while($row = mysql_fetch_array($result)) {
      echo '<tr>';
      echo '<td width="80" bgcolor="#d4d4d4">'.$row['id'].'</td>';
      echo '<td bgcolor="#d4d4d4">'.$row['departement'].'</td>';
      echo '<td bgcolor="#d4d4d4">'.$row['commentaires'].'</td>';
      echo '<td><input type="checkbox" name="option" value="acheter">acheter<br></td>'."\n";
      echo '</tr>'."\n";
      }
      echo '</table>'."\n";
      // fin du tableau.
      }
      else echo 'Pas d\'enregistrements dans cette table...';

      ?>
      0
      1. justement c'est cela que je ne sais pas faire, comment differencier chaque value de mes checkbox ?
        que dois-je faire ?

        Merci beaucoup
        0
    2. $i=0;
      while($row = mysql_fetch_array($result)) {
      echo '<tr>';
      echo '<td width="80" bgcolor="#d4d4d4">'.$row['id'].'</td>';
      echo '<td bgcolor="#d4d4d4">'.$row['departement'].'</td>';
      echo '<td bgcolor="#d4d4d4">'.$row['commentaires'].'</td>';
      echo '<td><input type="checkbox" name="option$i" value="acheter">acheter<br></td>'."\n";
      echo '</tr>'."\n";
      $i = $i +1;
      }

      sur l'autre page

      echo = $_POST["chek1"];
      echo = $_POST["chek2"];
      0
      1. Merci crazyspy pour tes reponses aussi rapides.

        ou dois-je placer
        echo "<form action='confirmation.php' method='post'>
        ainsi que
        echo "<input type='submit'"."value='Validez votre choix'></form>\n";

        $a = $_POST['departement'];
        $b = $_POST['thematique_projet'];

        $sql = "SELECT id,departement,commentaires FROM devis_table WHERE departement = '" . $a . "' AND thematique_projet = '" . $b . "'";
        $result = mysql_query( $sql) or die( "Erreur : " . mysql_error() );

        if($result) {
        // debut du tableau
        echo '<table bgcolor="#FFFFFF" align="center">'."\n";
        // première ligne on affiche les titres dans 4 colonnes
        echo '<tr>';
        echo '<td width="80" bgcolor="#9f9f9f"><b><u>id</u></b></td>';
        echo '<td bgcolor="#9f9f9f"><b><u>departement</u></b></td>';
        echo '<td bgcolor="#9f9f9f"><b><u>commentaires</u></b></td>';
        echo '</tr>'."\n";
        // lecture et affichage des résultats sur 4 colonnes, 1 résultat par ligne.
        $i=0;
        while($row = mysql_fetch_array($result)) {
        echo '<tr>';
        echo '<td width="80" bgcolor="#d4d4d4">'.$row['id'].'</td>';
        echo '<td bgcolor="#d4d4d4">'.$row['departement'].'</td>';
        echo '<td bgcolor="#d4d4d4">'.$row['commentaires'].'</td>';
        echo '<td><input type="checkbox" name="option$i" value="acheter">acheter<br></td>'."\n";
        echo '</tr>'."\n";
        $i = $i +1;
        }

        echo '</table>'."\n";
        // fin du tableau.
        }
        else echo 'Pas d\'enregistrements dans cette table...';

        ?>

        c'est debile mais n'importe ou ke je le place ceci ne fonctionne pas ! Merci
        De plus dans confirmation.php je voudrai ke les devis selectionnés soient recapitulés de cette maniere :
        Vous avez choisi :
        id nom email


        Voila merci davance
        0
    3. $a = $_POST['departement'];
      $b = $_POST['thematique_projet'];

      $sql = "SELECT id,departement,commentaires FROM devis_table WHERE departement = '" . $a . "' AND thematique_projet = '" . $b . "'";
      $result = mysql_query( $sql) or die( "Erreur : " . mysql_error() );

      if($result) {
      // debut du tableau
      echo "<form action='confirmation.php' method='post'>
      echo '<table bgcolor="#FFFFFF" align="center">'."\n";
      // première ligne on affiche les titres dans 4 colonnes
      echo '<tr>';
      echo '<td width="80" bgcolor="#9f9f9f"><b><u>id</u></b></td>';
      echo '<td bgcolor="#9f9f9f"><b><u>departement</u></b></td>­;';
      echo '<td bgcolor="#9f9f9f"><b><u>commentaires</u></b></td&g­t;';
      echo '</tr>'."\n";
      // lecture et affichage des résultats sur 4 colonnes, 1 résultat par ligne.
      $i=0;
      while($row = mysql_fetch_array($result)) {
      echo '<tr>';
      echo '<td width="80" bgcolor="#d4d4d4">'.$row['id'].'</td>';
      echo '<td bgcolor="#d4d4d4">'.$row['departement'].'</td>';
      echo '<td bgcolor="#d4d4d4">'.$row['commentaires'].'</td>';
      echo '<td><input type="checkbox" name="option'.$i.'" value="acheter">acheter<br></td>'."\n";
      echo '</tr>'."\n";
      $i = $i +1;
      }

      echo '</table>'."\n";
      echo "<input type='submit'"."value='Validez votre choix'></form>\n";
      // fin du tableau.
      }
      else echo 'Pas d\'enregistrements dans cette table...';

      ?>

      comme cela j'ai modif un petit truck aussi au niveau du nom de la checkbox
      0
      1. ah oui, je viens de voir .
        hum, par contre maintenant plus rien de s'affiche sur liste.php.

        $a = $_POST['departement'];
        $b = $_POST['thematique_projet'];

        $sql = "SELECT id,departement,commentaires FROM devis_table WHERE departement = '" . $a . "' AND thematique_projet = '" . $b . "'";
        $result = mysql_query( $sql) or die( "Erreur : " . mysql_error() );

        if($result) {
        // debut du tableau
        echo "<form action='confirmation.php' method='post'>
        echo '<table bgcolor="#FFFFFF" align="center">'."\n";
        // première ligne on affiche les titres dans 4 colonnes
        echo '<tr>';
        echo '<td width="80" bgcolor="#9f9f9f"><b><u>id</u></b></td>';
        echo '<td bgcolor="#9f9f9f"><b><u>departement</u></b></td>­;­;';
        echo '<td bgcolor="#9f9f9f"><b><u>commentaires</u></b></td&g­­t;';
        echo '</tr>'."\n";
        // lecture et affichage des résultats sur 4 colonnes, 1 résultat par ligne.
        $i=0;
        while($row = mysql_fetch_array($result)) {
        echo '<tr>';
        echo '<td width="80" bgcolor="#d4d4d4">'.$row['id'].'</td>';
        echo '<td bgcolor="#d4d4d4">'.$row['departement'].'</td>';
        echo '<td bgcolor="#d4d4d4">'.$row['commentaires'].'</td>';
        echo '<td><input type="checkbox" name="option'.$i.'" value="acheter">acheter<br></td>'."\n";
        echo '</tr>'."\n";
        $i = $i +1;
        }

        echo '</table>'."\n";
        echo "<input type='submit'"."value='Validez votre choix'></form>\n";
        // fin du tableau.
        }
        else echo 'Pas d\'enregistrements dans cette table...';

        ?>

        j'ai remplacé par ton code ...
        0
      2. @dubuducun'y a t'il pas une erreur de syntaxe dans la checkbox ?
        0
    4. name="option'.$i.'" et si tu remet name="option$i"
      0
      1. je l'ai remise . Rien ne change !
        depuis que l'on a disposé le form, ca deconne
        0
    5. moi jen utilise elle esont ecrite comme cela :

      <input type='checkbox' value='suppr' name='suppr' />
      0
      1. hum ... bon bin je suis pas dans la merde !
        je ne sais pas koi faire
        0
    6. echo "<input type='submit' value='Valider' /></form>";

      en mettant ceci a la place de
      echo "<input type='submit'"."value='Validez votre choix'></form>\n";
      0
      1. maleureusment, ceci ne change rien.
        des que j'enleve le form ca refonctionne autrement cela ne m'affiche rien sur liste.php.
        Je ne vois pas ce qui va pas.

        $sql = "SELECT id,departement,commentaires FROM devis_table WHERE departement = '" . $a . "' AND thematique_projet = '" . $b . "'";
        $result = mysql_query( $sql) or die( "Erreur : " . mysql_error() );

        if($result) {
        // debut du tableau
        echo "<form action='confirmation.php' method='post'>
        echo '<table bgcolor="#FFFFFF" align="center">'."\n";
        // première ligne on affiche les titres dans 4 colonnes
        echo '<tr>';
        echo '<td width="80" bgcolor="#9f9f9f"><b><u>id</u></b></td>';
        echo '<td bgcolor="#9f9f9f"><b><u>departement</u></b></td>­';
        echo '<td bgcolor="#9f9f9f"><b><u>commentaires</u></b></td&g­­t;';
        echo '</tr>'."\n";
        // lecture et affichage des résultats sur 4 colonnes, 1 résultat par ligne.
        $i=0;
        while($row = mysql_fetch_array($result)) {
        echo '<tr>';
        echo '<td width="80" bgcolor="#d4d4d4">'.$row['id'].'</td>';
        echo '<td bgcolor="#d4d4d4">'.$row['departement'].'</td>';
        echo '<td bgcolor="#d4d4d4">'.$row['commentaires'].'</td>';
        echo '<td><input type="checkbox" name="option$i" value="acheter">acheter<br></td>'."\n";
        echo '</tr>'."\n";
        $i = $i +1;
        }

        echo '</table>'."\n";
        echo "<input type='submit' value='Valider' /></form>";

        // fin du tableau.
        }
        else echo 'Pas d\'enregistrements dans cette table...';

        ?>
        0
    7. echo "<form action='confirmation.php' method='post'> la aussi sa va pas faut mettre

      echo '<form action="confirmation.php" method="post">';
      0
      1. youpi !
        maintenant c'est confirmation.php qui est vide ! je sais que jsuis pas bon, tu peux me lapider si tu veux :)

        <?php

        echo = $_POST["chek1"];
        echo = $_POST["chek2"];

        ?>
        0
    8. et avec sa :

      echo "<form action='confirmation.php' method='post'> la aussi sa va pas faut mettre

      echo '<form action="confirmation.php" method="post">';
      0
      1. c'est logique lool
        echo = $_POST["option1"];
        echo = $_POST["option2"];
        test avec cela
        0
        1. jtavé dis que j'etais un peu debile.
          hé bien meme en changé cela, cela ne fonctionne pas. ecran blanc !
          0
      2. et echo = $_POST["acheter"];
        0
        1. non :(
          toujours rien. je teste, je bidouille !
          0
      3. question bete mais tu coche bien les cases lool
        0
        1. alors d'accord je suis nul mais quand meme ... ! Mdr
          0
      4. c'est possible de voir ce que cela fait, c'est accessible sur le net?
        0
        1. sinon test
          <input type="checkbox" name="acheter" value="acheter">

          et

          echo $_POST["acheter"];
          0
          1. heu non , la il me sort sur confirmation.php : "acheter" :)

            0
        2. <input type="checkbox" name="acheter" value="acheter"> tu met

          <input type="checkbox" name="'.$row['id'].'" value="acheter">

          le checkbox va t'affiche l'id et avec tu pourra faire une requete qui va affiché id nom email , le check va te servir a faire un autre requete permettant d'afficher les info que tu veu, c'est pas trop clair ce que je raconte lool, je vais devoir partir la mais si tu veu m'envoyer tes pages par mail je peux look ce soir, avec ta base
          0
          1. merci crazyspy, moi aussi je dois partir.
            je verai cela demain matin. mes neurones ont trop chauffés aujourd'hui.
            en tout cas, je te remercie de m'avoir aidé a avancer.c'est tres généreux de ta part de faire partager ton experience.
            a demain.
            0
        3. ok demain j'y serai aussi
          0
          1. mon cher crazyspy,
            me revoila comme promis. je galere toujours autant !!
            je n'arrive toujours pas a recuperer les infos des checkbox chekés !!
            je ne sais pas koi mettre dans mon input et ni dans ma page confirmation.php pour les recuperer.
            je fais donc appel a tes conseils avisés !
            Merci
            PS: et si crazyspy il est pas arrivé, les autres aussi vous pouvez repondre :) !!
            0
        4. je suis la moi aussi lool, je vais relire un peu histoire de me remettre dans le bain
          0
          1. le mieux serai que tu donne a tes checkbox la valeur de l'identifiant, comme cela tu peux faire une requete qui t'affiche les infos que tu souhaite grace au casse cocher?tu voi un peu se que je veu dire?
            0
            1. bonjour,
              non je ne vois pas trop.

              veux tu dire ?

              echo '<td><input type="checkbox" name="'.$row['id'].'" value="acheter">acheter<br></td>'."\n";

              un truc dans le jenre ?
              0
          2. non plutot :
            value="'.$row['id'].'">acheter<br></td>'."\n";

            comme cela ta l'identifiant de ta ligne qui correspond au choix des deux listes, et avec tu fais un requete qui aurra pour condition que l'identifiant soit egale a $_POST["option1"], $_POST["option2"], ....
            0
            1. bon attention : Freestyle ! je me prépare a dire et a faire n'importe quoi ! EN AVANT !
              dans liste.php, je met :
              ...
              $i=0;
              while($row = mysql_fetch_array($result)) {
              echo '<tr>';
              echo '<td width="80" bgcolor="#d4d4d4">'.$row['id'].'</td>';
              echo '<td bgcolor="#d4d4d4">'.$row['departement'].'</td>';
              echo '<td bgcolor="#d4d4d4">'.$row['commentaires'].'</td>';
              echo '<td><input type="checkbox" name="option'.$i.'" value="'.$row['id'].'">acheter<br></td>'."\n";
              echo '</tr>'."\n";
              $i = $i +1;
              }
              ...

              dans confirmation.php :
              $c = $_POST['option'.$i.''];

              $sql = "SELECT id,departement,commentaires FROM devis_table WHERE id = '" . $c . "' $result = mysql_query( $sql) or die( "Erreur : " . mysql_error() );

              Voila je suis dsl, je m'y connait pas trop bien.je debute juste alors excusez moi pour les erreurs basiques ! Merci de me corriger
              0
          • 1
          • 2
          • 3