【问题标题】:How to send unchecked checkbox value that is not 0/false or 1/true but integers form 1 to 32如何发送非 0/false 或 1/true 但整数形式为 1 到 32 的未选中复选框值
【发布时间】:2019-03-26 17:08:49
【问题描述】:

我有一组带有一些附加列的复选框。当一个被选中时,它的值被添加到一个 MySQL 表中。值从 1 到 32。

当其中一个未被选中时,我需要向 MySQL 发送相同的数据并使用 ON DUPLICATE KEY UPDATE 来更新其余列(如果更改)。

在这种情况下,我不想发送 0 或 1,而是从 1 到 32 的值。

<input type="checkbox" name="add_value[]" id="add-value" value="{$values.id_value}"/><p>{$values.name} </p>

【问题讨论】:

  • 如果选中了一个复选框,那么在发布表单时,value 属性决定了发布到服务器的内容。如果未选中,则发布 nothing。你想以不同的方式工作是什么?
  • 是的,但是 MySQL 没有更新。或者我怎样才能强制它更新?
  • 如果您的复选框未设置,则进行 SQL 查询以更新它。使用 ISSET 检查。如果他们不选中不会设置的框,您可以使用三元运算符发布您的值

标签: javascript php arrays smarty


【解决方案1】:

这样做的方法是这样的:

<input type="checkbox" name="1bit" />
<input type="checkbox" name="2bit" />
<input type="checkbox" name="4bit" />
<input type="checkbox" name="8bit" />
<input type="checkbox" name="16bit" />

然后在你的接收器中,类似

<?php
$num = 0;
if ($_REQUEST["2bit"]===1) $num += 1;
if ($_REQUEST["4bit"]===1) $num += 2;
...

?>

然后你可以提交 $num 到你的数据库。您还应该添加检查以确保您的字段名称(1 位、2 位等)存在于 $_REQUEST 数组中

【讨论】:

  • Hum 有趣,将测试它并报告它是否有效。
【解决方案2】:

将我的评论扩展到他的要求,您可以执行以下操作:

$checkBoxValue = (ISSET($_POST['name']) ? 1 : 0;

然后只需使用标准的 sql 查询来执行您需要的操作。

如果您需要复选框的特定值,您也可以结合使用隐藏来为您保存该值。

甚至还有一个选项,您可以执行以下操作:

<form action="" method="post">
<input type="checkbox" id="status_1" name="status_1" value="1" />
<input type="checkbox" id="status_2" name="status_2" value="1" />
<input type="checkbox" id="status_3" name="status_3" value="1" />
<input type="submit" />
</form>    
<?php
    for($i = 1; $i<=count($_POST); $i++) {
        $_POST["status_$i"] = isset($_POST["status_$i"]) ? $_POST["status_$i"] : 0;
    }
    var_dump($_POST);

【讨论】:

  • 另一个选项是,如果您需要它们包含特定值,您可以创建隐藏,如果未选中并且隐藏存在,那么您就有了您的价值。
  • 我不需要在数据库中添加 0 或 1,而是从 0 到 32 的整数。选中检查并提交它们被添加到他的数据库中,但是当未选中时它们不是。我只需要提交它们,这样数据库就可以使用依赖于此列的其他信息进行更新。
  • 如果这就是您需要做的所有事情,那么您就拥有了执行此操作所需的所有信息。利用我为您提供的内容发挥创意。
  • 感谢蒂姆,将进行实验并报告!
猜你喜欢
  • 2021-10-14
  • 2017-12-05
  • 2022-06-13
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
  • 2020-12-11
  • 2018-04-02
  • 2017-07-19
相关资源
最近更新 更多