如何发送未选中的复选框值,该值不是0 / false或1 / true但是整数形式为1到32

问题描述 投票:0回答:2

我有一系列带有一些额外列的复选框。检查一个时,它的值将添加到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>
javascript php arrays smarty
2个回答
0
投票

这样做的方法如下:

<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。您还应该添加检查以确保$ _REQUEST数组中存在您的字段名称(1位,2位等)


0
投票

扩展我对他所要求的评论,你可以这样做:

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

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

如果您需要复选框的特定值,您可以结合使用hiddens来保存值。

或者甚至还有一个选项可以做到这样的事情:

<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);
© www.soinside.com 2019 - 2024. All rights reserved.