Mise à jour de la Case de Valeur à l'Aide de PHP & MySQL
table :
role_id role_name perm_id
1 admin 0
2 Manager 0
7 Accounts Assitant 4,6
8 Registrar 2,5,6
Iam stocker toutes ces informations à partir d'un Formulaire PHP
<form action="" method="post">
<table>
<tr><th>ROLE</th>
<th>PERMISSIONS<br><input type="checkbox" class="chk_boxes"></th>
</tr>
<tr>
<td><input type="text" name="role_name" required></td>
<td><input type="checkbox" class="chk_boxes1" name="perm[]" value="1">My Account<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="2">Edit Account<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="3">Change password<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="4">List of users<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="5">Define roles<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="6">Assign roles<br>
</td>
</tr></table>
<div><input type="submit" name="submit" value="create role"></div>
</form>
J'ai été réussi à soumettre les données de la base de données, j'ai eu des problèmes lors de l'extraction de la case à cocher valeurs de la base de données.
Maintenant, je veux modifier ce formulaire et afficher les cases à cocher(sélection de l'un et de désélectionné l'un de l') également.
<?php
$query = $db->prepare("SELECT * FROM role WHERE role_id = ".$role_id." ");
$query->execute();
foreach($query as $q)
{
echo '<form action="" method="post">
<table>
<tr><th>ROLE</th>
<th>PERMISSIONS<br><input type="checkbox" class="chk_boxes"></th>
</tr>
<tr><td><input type="text" value="'.$q['role_name'].'" name="role_name" required></td>
<td>';
$permid_array = $q['perm_id'];
foreach(explode(',', $permid_array) as $n)
{
if ($n == 1 || $n == 2 || $n == 3 || $n == 4 || $n == 5 || || $n == 6) { $set_checked = "checked";}
else {$set_checked = ""; }
echo '
<input type="checkbox" class="chk_boxes1" name="perm[]" value="1" '.$set_checked.' > My Account<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="2" '.$set_checked.' > Edit Account<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="3" '.$set_checked.' > Change Password<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="4" '.$set_checked.' > List of users<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="5" '.$set_checked.' > Define roles<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="6" '.$set_checked.' > Assign roles<br>';
}
echo '</td></tr>
</table>
<div><input type="submit" name="submit" value="create role"></div>
</form>';
}
?>
Quand j'execute le formulaire d'édition, les checkboxs se sont répétées. Suggérez-moi où je suis allé mal ou me guider d'autres façon de faire.
Merci Beaucoup
Vous devez vous connecter pour publier un commentaire.
Vous n':
pour chaque perm_id. Si vous avez 2,4 en perm_id vous permettra de le faire deux fois. Si vous avez 2 vous ne le faire qu'une fois et si vous avez 1,2,3,4,5,6 vous allez le faire 6 fois.
Vous pouvez facilement résoudre par boucler sur chaque valeur:
Si vous voulez coller à votre solution originale, c'est ce que vous avez besoin de changer: