[RESOLU] faire interagir une liste déroulante et une checkbox

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] faire interagir une liste déroulante et une checkbox

Re: faire interagir une liste déroulante et une checkbox

par moogli » 10 avr. 2017, 15:50

salut,
resulttype = mysqli_query($conn, $tr)
<?php
while($queltype=mysqli_fetch_assoc(resulttype))

tu as une erreur de syntaxe il manque le $ devant les nom de variables => cela ne peut pas fonctionner ainsi.

si tu n'as pas d'erreur il faut que vérifie que les paramètres error_reporting = ALL et dsiplay_error = on dnas le php.ini (redémarre apache si tu modifies une valeur).

une fois cela résolut tu devrais avoir un comportement un peu plus sympa coté checkbox.
tu peux afficher les données brut avec var_dump avant de les employer (le mieux c'est le deboguage avec un ide).


@+

Re: faire interagir une liste déroulante et une checkbox

par raoul » 10 avr. 2017, 15:24

y aurait-il quelqu'un qui pourrait me débloquer ?

Re: faire interagir une liste déroulante et une checkbox

par raoul » 09 avr. 2017, 22:52

voici mon code php si vous pouvez m'aider je vous en serais reconnaissant.
à ce jour quand je change de catégorie, il n'y a pas de modification dans mes box.
je ne vois pas trop comment faire.
//selection
$sporthigh = "SELECT *, max(`id_sport`) FROM `distribution` WHERE `id_user`= $idfonnctuser";
$sporthighresult = mysqli_query($conn, $sporthigh);
if (!$sporthighresult ) {
  echo "select maxsport failed: " . mysqli_error($conn);
}
$d = mysqli_fetch_assoc($sporthighresult);
if (!$d ) {
  echo "select mr failed: " . mysqli_error($conn);
}
$sportfonctinit 				= $d['id_sport'];
$categoriefonctioninit 		= $d['id_categorie'];

//sélectionner la categorie, le sport
if(isset($sportfonctinit)){
  $tr="SELECT *, IF(id_type IS NULL, false, true) AS sportactif
      FROM type
      LEFT OUTER JOIN
      (SELECT * FROM `distribution`
      WHERE `id_user` = $idfonnctuser  AND `id_categorie` = $categoriefonctioninit and `id_sport` = $sportfonctinit  ) AS slctHab
      ON type.id = slctHab.id_fonction ORDER BY nom ASC";
}else{
  $tr = "SELECT *, FALSE as sportactif FROM type ORDER BY nom ASC" ;
}

resulttype = mysqli_query($conn, $tr);
if (!resulttype) {
  echo "select type failed: " . mysqli_error($conn);
}

//selection du sport 
$trsport = "SELECT * FROM sport ";
$sportname = mysqli_query($conn, $trsport);
  if (!$sportname ) {
  echo "select sport failed: " . mysqli_error($conn);
}
if (mysqli_num_rows($sportname) == 0) {
  echo "erreur aucune sport trouvé!";
}

//selection des categories 
$trcategorie = "SELECT * FROM categorie ";
$categorielibelle = mysqli_query($conn, $trcategorie);
  if (!$categorielibelle ) {
  echo "select categorie failed: " . mysqli_error($conn);
}
if (mysqli_num_rows($categorielibelle) == 0) {
  echo "erreur aucune categorie trouvé!";
}
}

if(isset($_POST['type'])) {
//Insérer en bdd les types 
if(!empty($_POST['choix']))
{
  //echo 'Les valeurs des cases cochées sont : <br />';
  $ID_USR 				= $_GET['id'];
  $sportchoisi 				= $_POST['sport'];
  $categoriechoisi 	= $_POST['categorie'];

  $deletedistribution = "DELETE FROM `distribution` WHERE `id_utilisateur`=$ID_USR  AND `id_categorie`=$categoriechoisi  AND `id_sport`=$sportchoisi" ;
  $deletedistributionresult = mysqli_query($conn, $deletedistribution);
    if (!$deletedistributionresult ) {
         echo "DELETE failed: " . mysqli_error($conn);
       }
voici mon code html :
<html>
       <label for="">categorie :</label></br>
       <select name="categorie" id="categorie">
         <?php while($quelcategorie = mysqli_fetch_assoc($categorienom)) {
             if (!$quelcategorie ) {
               echo "fetch categorie failed: " . mysqli_error($conn);
               }
         ?>
         <option
         <?php if($quelcategorie['id'] == $categoriefonctioninit)
           {
             echo "selected=\"selected\"";
            } ?>

         value=<?php echo $quelcategorie['id'] ?>><?php echo $quelcategorie['id'] . "-" . $quelcategorie['nom'] ?></option>
         <?php } ?>


       </select>

       </td>
       <td >

       <label for="statut">sport :</label></br>
       <select name="sport" id="sport">
         <?php while($quelsport = mysqli_fetch_assoc($sportname)) {
             if (!$quelsport ) {
               echo "select sport failed: " . mysqli_error($conn);
               }
         ?>
         <option
         <?php if($quelsport['id'] == $sportfonctinit)
           {
         echo "selected=\"selected\"";
         } ?>

         value=<?php echo $d['id'] ?>><?php echo $d['id'] . "-" . $d['libelle'] ?></option>
         <?php } ?>


       </select>

       </td>
       </tr>


       </table>

       </div>
       </div>
       </div>

       <!-- tableau -->
      
      
      <h4 >LISTE DES diiferents types</h4></header>

       <thead >
       <tr>
       <th class="text-center col-sm-4 col-md-4 col-lg-4">nom types</th>

       </tr>
       </thead>
       <tbody>
       <!--Afficher la liste des types en bdd-->
       <?php while($queltype=mysqli_fetch_assoc(resulttype))
       {
       if (!$queltype)
       {
         echo "select type failed: " . mysqli_error($conn);
       }

       ?>
       <tr>
       <td align='center'><?php if(isset($queltype['nom'])){echo $queltype['id']. "-". $queltype['nom'] ;} ?></td>
       <td align='center'><input type="checkbox" id="choix" name="choix[]"
         <?php if($queltype['sportactif'] == 1)
           {
             echo "checked =\"checked\"";
           } ?>
           value=<?php echo $queltype['id'] ?>></td>

         <?php
       }
       ?>
       </html>

Re: faire interagir une liste déroulante et une checkbox

par @rthur » 09 avr. 2017, 16:51

Bonjour,

Quel est le problème ? Qu'as-tu essayé ? Où bloques-tu ?

Le prinicipe est relativement simple à décrire, il faut que pour chaque choix de ta liste déroulante tu fasses un tableau PHP des checkbox à cocher.
Ensuite tu parcours toutes les checkboxs existantes, soit elles font partie du tableau PHP et tu les coches, soit elles n'en font pas partie et tu les décoches.

faire interagir une liste déroulante et une checkbox

par raoul » 09 avr. 2017, 15:34

bonjour,

mon problème est assez complexe. j'aimerais faire réagir un tableau où il y a des checkbox par rapport au choix que je fais dans ma liste déroulante.
Tout çà en php.
je souhaiterais que lorsque je passe sur un autre choix de ma liste déroulante, j'aimerais que les checkbox valident soient cochées et les autres non.
merci de votre aide