php - Html 表单提交复选框 - 更改 mysql 表中的值

标签 php html mysql

我有一个由一些 bool 值字段组成的数据库,所以在我的html表单中,我将输入类型设置为复选框,并且我想使if selected =“True”, 取消选中=“假”。
我怎样才能存档它? 现在,如果我检查它们,我会看到一个 0,如果我不检查,我什么也看不到。 我尝试放置和隐藏字段并使用它,但没有得到任何结果。

如果您需要代码或打印屏幕来更好地理解问题,请告诉我。 谢谢。

最佳答案

这是复选框输入的默认行为:

  • 如果选中该复选框,则发布参数“value”的值
  • 如果未选中该复选框,则不发布任何内容

所以,如果你有类似的东西:

<input type="checkbox" value="TRUE" name="my_checkbox" />

在 PHP 中,您可以执行以下操作:

if (isset($_POST["my_checkbox"])) {
    echo "checkbox is checked";    
} else {  
    echo "checkbox not checked";
}

如果您绝对想发布某些内容,即使未选中该复选框,正如您所说,您可以使用如下隐藏字段:

<input type="checkbox" value="TRUE" name="my_checkbox_1" />
<input type="hidden" value="my_checkbox_1,my_checkbox_2,my_checkbox_3" name="my_checkboxes" />

隐藏字段“my_checkboxes”将保存表单中所有复选框的所有名称。

然后,您可以获取 $_POST["my_checkboxes"] 的值,拆分它的值(用“,”),然后循环遍历所有复选框:

$checkboxes = explode(",", $_POST['my_checkboxes']);
foreach($checkboxes as $checkbox) {
  $checkbox_value = $_POST[$checkbox];
  if (isset($checkbox_value)) {
    echo "checkbox " . $checkbox . " was checked";
  } else {
   echo "checkbox " . $checkbox . "wasn't check";
  }
}

如果您有一个带有未知数量复选框的动态表单,那么该解决方案会很好。

使用 JavaScript 可以将某些内容发布为“my_checkbox”($_POST['my_checkbox'])(如果选中或未选中,并且具有不同的值)(但我不推荐这样做)。

关于php - Html 表单提交复选框 - 更改 mysql 表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24214983/

相关文章:

html - 在带有固定 SIdebar 的滚动页眉上

mysql - 自上次购买以来的时间

PHP 字符串操作 : Append html class to a string

javascript - 如何防止 HTML 忽略来自 JavaScript 的换行符?

html - 表格中不同行的不同 td 宽度?

php - 如何通过来自 php 的变量更改 jQuery 中的数值

database - 是否可以在不登录的情况下在mysql中创建用户?

php - PHP 是否处理多维 $_REQUEST 数组?

php - $结果 = mysql_query()

php - 如何使用 "MongoDB\Driver\Query($filter, $options)"?