1

只有我选中的复选框被放入 $_POST。我希望那些在 $_POST 中检查的值为“true”,而未检查的值为“false”。无论如何要这样做,或者 POST 请求是否总是只包含有关选中复选框的信息。

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

4

6 回答 6

1

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

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

于 2012-05-02T19:37:54.970 回答
1

您可以使用

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

然后解析服务器上的输入。您将得到falsetrue false,前者映射到false,后者映射到true

于 2012-05-02T19:38:43.147 回答
0

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

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

于 2012-05-02T19:36:51.170 回答
0

你可以从你的 php 做:

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

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

于 2012-05-02T19:38:32.677 回答
0

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

您可以通过以下方式检查它是否已发布

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

或使用!

<?php
if (!isset($_POST['checkbox1']))
{
    // it's NOT posted
}
于 2012-05-02T19:38:40.493 回答
0

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

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

使用trueand false, or 需要的数据。

于 2012-05-02T19:40:48.593 回答