首页 > 解决方案 > 如何发送非 0/false 或 1/true 但整数形式为 1 到 32 的未选中复选框值

问题描述

我有一组带有一些附加列的复选框。当一个被选中时,它的值被添加到一个 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>

标签: javascriptphparrayssmarty

解决方案


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

$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);

推荐阅读