salut depuis longtemps je cherche à envoyer des données d'un input checkbox avec php dans une bdd. je ne trouve pas de tutoriel qui peut me montrer comment faire?

5 réponses


Yentia
Réponse acceptée

Salut,

Faire un tutoriel pour sa, serait totalement inutile, le système est le même pour tous les champs.

voici un exemple avec une seul checkbox, c'est très simple, après a toi de modifier pour l'adapter a ton projet.
Si tu connais PDO, rien de compliqué

<form action="test.php" method="post">
    // value sera la valeur stocké en base et name sera le nom que tu retrouvera dans $_POST
    <input type="checkbox" name="checkbox1" value="ma checkbox qui dechire"> ma checkbox qui dechire

    <input type="submit" name="btn_envoi" value="envoyer">

</form>

<?php

    if(isset($_POST['btn_envoi'])){
        // rempli la connection a ta BDD généralement user = root et pass est vide
        $DB = new PDO('mysql:host=localhost;dbname=taBDD','user','pass', array(
                    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8',
                    PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION,PDO::ERRMODE_WARNING
                ));
        // dans values le premier champs est vide car il s'agit de l'id en BDD qui est en autoincrement
        $req = $DB->prepare("INSERT INTO matable VALUES ('', :checkbox );");
        // ici on peut egalement faire un array($_POST['checkbox1']) et remplacer :checkbox dans la requete par un ?
       // , cela remplira les ? dans l'ordre du tableau.
      // exemple : $req = $DB->prepare("INSERT INTO matable VALUES ('',  ? );");
      // $req->execute(array($_POST['checkbox1']));
     // les deux techniques fonctionnent
        $req->execute(array(':checkbox' => $_POST['checkbox1']));
    }

?>

Bonne continuation

merci donc si j'ajoute un checkbox la case cochée sera envoyée sans la bdd?

Topic édité merci de mettre un sujet clair "Aide" n'apporte aucune information

désolé Grafikart j'y ai pensé après mais j'ai pas modif ;(

Le value de la checkbox sera envoyé, si la checkbox est en "on" en effet