如何发送未选中的复选框进行发布


How to send nonchecked checkbox to post

只有我选中的复选框才会被放入 $_POST。我希望那些被检查的那些值为"true",值为 _POST 美元,而未检查的值为"false"。无论如何都可以这样做,或者 POST 请求是否始终只包含有关选中复选框的信息。

我唯一能想到的就是使用隐藏的表单字段,然后让复选框操作它们。

请参阅发布未选中的复选框和未选中的复选框值

可以通过添加具有相同名称的隐藏字段来实现。

您可以使用

<input type="checkbox" name="myCheckbox" value="true" />
<input type="hidden" name="myCheckbox" value="false" />

,然后在服务器上分析输入。 你要么得到false要么得到true false,前者映射到false,后者映射到true

它只会包含选中复选框的内容。 否则,您必须通过使用表单帮助程序或输入过滤器来模拟它,该过滤器以您喜欢的方式连接您的变量/数组。

此类功能将需要您在每个表单上使用的所有复选框,然后可以设置为"找到的内容为真",而未检测到的内容保留为"假"。

这是不可能的,因为它依赖于浏览器。

你可以通过做来检查它是否被发布

<?php
if (isset($_POST['checkbox1']))
{
    // it's posted
}

或使用!

<?php
if (!isset($_POST['checkbox1']))
{
    // it's NOT posted
}

您可以在服务器端假设未在发布数据上设置的那些未被选中。尝试验证变量是否已设置:

$_POST['a_checkbox'] = (isset($_POST['a_checkbox'])) ? 1 : 0;

使用truefalse,或需要数据。

你可以从你的php做:

if(isset($_POST['checkbox'])||$_POST['checkbox']!="yes"){
    //other code here
}

或者,您可以使用一些 JavaScript 在提交未发送的复选框值之前添加隐藏的输入