首页 > 解决方案 > 使用隐藏的多个复选框值更新 db 有时会失败

问题描述

在我输入文本类型之前,我只是将 1 用于激活,0 用于停用,一切都像这样完美运行,但我想通过复选框更改应用程序的外观。

停用所有并发送它时工作正常,关闭所有内容时也可以正常插入,但例如,我有 3 个 ID(1、2、3),如果我关闭 ID2,它实际上会关闭 ID3,我不会了解会发生什么。

这就是我的桌子的样子

id - option - value

1 - option1 - 1
2 - option2 - 0
3 - option3 - 1

代码:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $item_Count = count($_POST["id"]);

  for($i = 0; $i < $item_Count; $i++) {

    DB::update('app_options', array(
      'active' => $_POST["active"][$i],
    ), "id = %s", $_POST["id"][$i]);

  }
}
?>

<form method="POST">
  <?php

  $results = DB::query("SELECT * FROM app_options");

  foreach ($results as $row) { ?>

    <input type="hidden" name="id[]" value="<?php print($row['id']);?>">

    <input class="form-check-input" type="checkbox" name="active[]" id="active" value="1" <?php if (isset($row['active'])){echo "checked";} ?> >

  <?php } ?>

  <button type="submit" class="btn btn-primary btn-block">submit</button>
</form>

有很多问题有答案,但没有一个使用我需要的隐藏输入,希望您能帮助我,非常感谢!

标签: phpformscheckbox

解决方案


推荐阅读