2017-08-17 1 views
0

J'ai un bouton bascule comme celui-ci dans une table où le bouton sera créé dynamiquement basé sur le nombre de lignes extraites de la base de donnéesstocker la valeur du bouton bascule comme 1 quand il est sur autre 0 désactiver dans la même variable de tableau en utilisant php

<td colspan="3"><input type="checkbox" class="toggleone" name="attendance[]" id="attendance[]" data-toggle="toggle" data-on="Yes" data-off="No"></td> 

mon problème est que les valeurs ne sont pas affichés correctement lorsque vous cliquez sur le bouton post mais le nombre de sur les boutons est correct, mais pas stockés correctement dans leur position

button    obtained output    desired output 
on     1        1 
off     1        0 
off     0        0 
off     0        0 
on     0        1 

Quelqu'un me aider où je suis aller mal. Voici ma boucle

for($i=0;$i<($_SESSION['num1']);$i++) 
{ 

     $subcheck = (isset($_POST['attendance'][$i]))? 1 : 0; 
     echo $subcheck; 
} 

Répondre

0

Votre logique est fausse, $_POST['attendance'][$i] est pas ce que vous pensez qu'il est. Si 2 entrées sont cochées, les 2 premières valeurs de $_POST['attendance'] seront définies (indices 0 et 1), qu'elles soient les 2 premières cases à cocher ou par exemple les 2 dernières.

Comme vous ne définissez pas de clé ni une valeur pour vos cases à cocher, vous ne serez pas en mesure de les identifier sur le serveur. Pour éviter cela, vous devez définir la clé manuellement lorsque vous créez le formulaire ou leur donner une valeur.

Pour définir la clé dans une boucle, vous pouvez utiliser quelque chose comme:

<input type="checkbox" class="toggleone" name="attendance[<?php echo $i; ?>]" id="attendance_<?php echo $i; ?>" data-toggle="toggle" data-on="Yes" data-off="No"> 

Notez que je ne sais pas si vous pouvez utiliser la notation de tableau pour l'ID (je ne pense pas .. .) J'ai donc défini l'ID à l'aide d'une chaîne.

+0

J'ai trouvé la solution par moi même iset la valeur par défaut comme 0 et l'a mise à jour si elle a vérifié comme 1 cela a fonctionné pour moi merci beaucoup – HariPriya