Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de checkbox

Sujet résolu
    22 septembre 2017 à 22:16:40

    Bonsoir, j'ai un tableau généré automatiquement en PHP qui contient des checkbox, le "name" de ces checkbox est incrémenté en même temps que les deux variables de mes deux boucles qui créent le tableau.

    Mon problème est le suivant : je n'arrive pas à récupérer correctement les données de mes checkbox.  j'ai bien une entrée dans la base de donnée mais le plus important n'y apparait pas ( le fait que les cases soit cochées où non) 

    Si vous arriviez à m'aider ce serait génial ! Merci beaucoup 

    mon php :

    <?php
    
    //déclaration de bdd
        $database = new PDO('mysql:host=db;dbname=dispos','root','********') ;
    
    
    //méthode pour récupérer les données des checkbox
    if ($_SERVER["REQUEST_METHOD"] == "POST")
    {
        
        for ($i = 1; $i <= 31; $i++) {
            for ($j = 0; $j <= 3; $j++){
                
                if (isset($_POST['checkbox'.$i.$j]) ){
                    $database -> query ('INSERT INTO dispo (id_personne, id_moment, jour, coche) VALUES ("1","'.$j.'","'.$i.'","1")') ;
                }
                else {
                    $database -> query ('INSERT INTO dispo (id_personne, id_moment, jour, coche) VALUES ("1","'.$j.'","'.$i.'","0")') ;
                }
        
                   if (isset($_POST['checkbox'.$i.$j+3]) ){
                    $database -> query ('INSERT INTO dispo (id_personne, id_moment, jour, coche) VALUES ("2","'.$j.'","'.$i.'","1")') ;
                }
                else {
                    $database -> query ('INSERT INTO dispo (id_personne, id_moment, jour, coche) VALUES ("2","'.$j.'","'.$i.'","0")') ; 
                }
                
                      if (isset($_POST['checkbox'.$i.$j+6]) ){
                    $database -> query ('INSERT INTO dispo (id_personne, id_moment, jour, coche) VALUES ("3","'.$j.'","'.$i.'","1")') ;
                }
                else {
                   $database -> query ('INSERT INTO dispo (id_personne, id_moment, jour, coche) VALUES ("3","'.$j.'","'.$i.'","0")') ; 
                }
                
                      if (isset($_POST['checkbox'.$i.$j+9]) ){
                    $database -> query ('INSERT INTO dispo (id_personne, id_moment, jour, coche) VALUES ("4","'.$j.'","'.$i.'","1")') ;
                }
                else {
                    $database -> query ('INSERT INTO dispo (id_personne, id_moment, jour, coche) VALUES ("4","'.$j.'","'.$i.'","0")') ; 
                }
                
            }
        
        }
    }
    ?>
    

    mon html: 

    <?php 
              
    
    
    // -- Pour les colonnes avc le nom de tes potos
    $gens = array('Julien', 'Ludo', 'Seb', 'Nico');
    
    
    
    
    
    
    // -- les différentes plages horaires
    $plagesHoraire = array('Matin', 'Aprèm', 'Nuit');
    
    // -- On en déduit le nombre de fois qu'il faudra itérer sur chaque ligne
    $nbGens = count($gens);
    $nbPlagesHoraires = count($plagesHoraire);
    $nbIterations = $nbGens * $nbPlagesHoraires;
    ?>
    <!DOCTYPE html>
    <html>
    
    <head>
     
        <link rel="stylesheet" href="style.css"/>
        <meta charset="UTF-8">
        <title> Disponibilités </title>
        
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    
    </head>
    
    <body>
    
    <form id="dispo_form" method="post" action="checkbox.php" role="form">
    
        <caption>Disponibilités pour Octobre 2017</caption>
    
        <div>
            <!-- Nom des gens -->
            <div class=cellule></div>
            <?php foreach ($gens as $cleytus) { ?>
                <div class="cellule_personne"><?php echo $cleytus; ?></div>
            <?php } ?>
        </div>
    
        <!-- Plages horaires : HEAD -->
        <div id="first">
            <div class="first">Date</div>
            <?php for ($i = 0; $i < $nbIterations; $i++) { ?>
                <div class="cellule_moment" class="first<?php echo $i+1; ?>">
                    <?php echo $plagesHoraire[$i % $nbPlagesHoraires]; ?>
                </div>
            <?php } ?>
        </div>
        
        <!-- Plages horaires : BODY -->
        <?php for ($jour = 1; $jour <= 31; $jour++) { ?>
            <div id="line<?php echo $jour; ?>">
                <div class="date"><?php echo $jour; ?></div>
    
                <?php for ($i = 0; $i < $nbIterations; $i++) { ?>
                    <div class="cellule cellule<?php echo $i+1; ?>">
                        <input class="checkbox<?php echo $i+1; ?>" type="checkbox" name="checkbox <?php echo $jour. $i ?>" />
                    </div>
                <?php } ?>
        </div>
    
        
        <?php } ?>
    
                    <div>
                        <div class="cellule" id="allbox">Tout cocher</div>
                        <?php for ($i = 0; $i < $nbIterations; $i++) { ?>
                        <div class="footer cellule<?php echo $i+1; ?>">
                        <input class="all<?php echo $i+1; ?>" type="checkbox">
                    </div>    
            <?php } ?>
    
            <div>
            <div class="valider"><input id ="valider" type="submit" value="Valider"></div>
                        </div></div>
    
    
    
    
    
    </form>
    <script src="javascript.js"></script>
    </body>
    
    </html>

    Un apperçu : 




    • Partager sur Facebook
    • Partager sur Twitter

    Problème de checkbox

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown