У меня есть страница с флажками, сгенерированными в базе данных. Когда мы нажимаем этот флажок и отправляем его, он работает нормально и обновляется в базе данных. Но когда я пытаюсь снять флажок «1», он проверяет все отмеченные флажки.Флажки проверяются
Запрос:
if(isset($_POST['submit'])){
foreach ($_POST['untrain'] as $room_id => $user_id) {
// This query needs protection from SQL Injection!
$user_id;
$untrainQuery = "UPDATE room_users SET trained = '1' WHERE user_id = $user_id AND room_id = $room_id";
$db->update($untrainQuery);
}
}
if(isset($_POST['submit'])){
foreach ($_POST['amk'] as $room_id => $user_id) {
// This query needs protection from SQL Injection!
$user_id;
$untrainedQuery = "UPDATE room_users SET trained = '0' WHERE user_id = $user_id AND room_id = $room_id";
$db->update($untrainedQuery);
}
}
Флажки:
<?php
if($room->trained == 1)
{ ?>
<input type='hidden' value="<?php echo $room->user_id; ?>" name="amk[<?php echo $room->room_id; ?>]">
<input type='checkbox' value="<?php echo $room->user_id; ?>" name="trained[<?php echo $room->room_id; ?>]" checked>
<?php echo "Y"; }
else{ ?>
<input type='checkbox' value="<?php echo $room->user_id; ?>" name="untrain[<?php echo $room->room_id; ?>]">
<?php echo "N";
}?>
</td>
<Td><?php
if($room->active == 1) {
?> <input type='checkbox' name="<?php echo $room->room_id; ?>" checked>
<?php echo "Active"; }
else { ?>
<input type='checkbox' name="<?php echo $room->room_id; ?>"
<?php echo "Inactive"; } ?>
Я использовал трюк с «скрытой» вход перед флажком, но единственная проблема в том, что она не работает. Когда я нажимаю на него, он сбрасывает все флажки на 0.
Пожалуйста, отформатируйте свой код, чтобы его было легко читать. Это было бы не только полезно для нас, чтобы помочь вам, но и для вас, чтобы легко найти такие ошибки. Конструкция флажка особенно является тем, что я, как рецензент кода, просто бросаю в корзину. –
@ b.enoit.be отредактировал это :) –