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

PHP & Base de données Discussion :

récuperer les valeurs d'une checkbox multiple


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 57
    Par défaut récuperer les valeurs d'une checkbox multiple
    Bonjour tout le monde,
    j'essaye de récupérer les valeurs de checkbox à travers un tableau de données, mais je pense que la syntaxe n'est pas la bonne,
    sachant que l'user choisi des produits et les commande par la suite :

    voilà mon code:
    Code php : 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
    <?php
    $tri_critere = isset($_POST['trier']) ? trim($_POST['tri_critere']) : "";
    $cocher = isset($_POST['tri']) ? trim($_POST['checkbox']) : "id_produit";
    $liste = sqlListerCategoriesProduits($conn,$tri_critere,$cocher);
     
    $listeCategories=sqlLireCategorie($conn);
    ?>
    <form action="test.php" method="get">
     
        	<?php if (count($liste) > 0) : ?>
            <table>
                <tr>
                    <th>Produit</th>
                    <th>Description</th>
                    <th>Prix</th>
                     <th>Marque</th>
                     <th>categorie</th>
                     <th>Commander</th>
                </tr>
                <?php foreach ($liste as $row) : ?> 
                <tr>
                    <td><?php echo $row['nom_produit'] ?></td>
                    <td><?php echo $row['description_produit'] ?></td>
                    <td><?php echo $row['prix_produit'] ?></td>
                    <td><?php echo $row['nom_marque'] ?></td>
                    <td><?php echo $row['nom_categorie_produit'] ?></td>
                   <td> <input type="checkbox" name="checkbox[]" value="'.$row['id_produit'].'">
                   </td> 
                </tr>
                <?php endforeach; ?>
            </table> 
            <?php else : ?>
            <p>Aucun produit trouvé trouvé.</p>
            <?php endif; ?>
            <a href="test.php"><input type="submit" name="envoi" value="Commander"></a>
            </form>
    code sql
    Code php : 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
    function sqlListerCategoriesProduits($conn,$trier,$cocher){
     
    	$req = "SELECT * FROM categories_produits cp 
    	INNER JOIN produits p on cp.id_categorie_produit = p.id_categorie_produit 
    	INNER JOIN marques m ON p.id_marque = m.id_marque";
     
    	if(!empty($trier)){ 
     
    		$req.=" and cp.id_categorie_produit =".mysqli_real_escape_string($conn,$trier);
    	}
     
    	if(!empty($cocher)){
    		$req.=" and p.id_produit =".mysqli_real_escape_string($conn,$cocher);
    	}
     
    	if($result = mysqli_query($conn,$req,MYSQLI_STORE_RESULT)){
     
    		$nbResult = mysqli_num_rows($result);
            $liste = array();
            if ($nbResult) {
                mysqli_data_seek($result, 0);
                while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
                    $liste[] = $row;
                }
            }
            mysqli_free_result($result);
            return $liste;
        } else {
            errSQL($conn);
            exit;
            }
    	}
    page test pour afficher le résultat coché
    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
    <?php
    $tri_critere = isset($_POST['trier']) ? trim($_POST['tri_critere']) : "";
    $cocher = isset($_POST['tri']) ? trim($_POST['checkbox']) : "id_produit";
    $liste = sqlListerCategoriesProduits($conn,$tri_critere,$cocher);
    ?>
     <form method="get" action="test.php"> 
                <table>
                <tr>
    				<th>Numéro</th>
    				<th>Produit</th>
    				<th>Descrption du produit</th>
    				<th>Prix du produit</th>
    				<th>Quantité du produit</th>
    				<th>Catégorie du produit</th>
    				<th>Marque du produit</th>
                </tr>
                <?php foreach ($liste as $row) : ?>
                <tr>
                    <td><?php echo $row['id_produit'] ?></td>
                    <td><?php echo $row['nom_produit'] ?></td>
                     <td><?php echo $row['description_produit'] ?></td>
                      <td><?php echo $row['prix_produit'] ?></td>
                       <td><?php echo $row['quantite_produit_commande'] ?></td>
    				<td><?php echo $row['nom_categorie_produit'] ?></td>
                   <td><?php echo $row['nom_marque'] ?></td>
     
                </tr>
                <?php endforeach; ?>
            </table>
            <input type="text" name="submit" value="confirmer la commande">
            </form>
    de l'aide SVP!!!

  2. #2
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 57
    Par défaut
    quand je fais un test pour voir ce qui est coché, j'ai ca comme résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(!empty($_POST['checkbox'])){
         		 print_r($_POST);
     
       }
    Array ( [checkbox] => Array ( [0] => '.$row['id_produit'].' [1] => '.$row['id_produit'].' ) [envoi] => Commander )

  3. #3
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    salut,
    tu as fait une boulette, corrige la ligne 27 ainsi :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><input type="checkbox" name="checkbox[]" value="<?= $row['id_produit'] ?>"></td>

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 57
    Par défaut
    Merci beaucoup pour ta réponse, effectivement mnt je récupere que les id des produits cochés, par contre, dans la page test.php j'affiche toujours tous les produits, pas que ceux cochés
    est ce que tu as une idée de l'erreur commise?

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 57
    Par défaut
    est ce qu'il faut que j'ajoute ca pour tester les elements cochés pour les récuperer après dans la page test??
    sachant que $cocher = isset($_POST['tri']) ? trim($_POST['checkbox']) : "id_produit";
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><input type="checkbox" name="checkbox[]"value="<?= $row['id_produit'] ?>" <?php echo $cocher === $row['id_produit'] ? "checked" : "" ?>>

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    regarde ce que tu as écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="test.php" method="get">
    et dans ton code de test, tu mènes tes tests sur $_POST

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/10/2007, 16h30
  2. Réponses: 2
    Dernier message: 04/04/2007, 17h21
  3. Réponses: 4
    Dernier message: 13/11/2006, 17h49
  4. Réponses: 5
    Dernier message: 12/08/2006, 00h36
  5. Réponses: 12
    Dernier message: 02/05/2006, 19h37

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