PHP:可以自动获取所有已发布的数据并且未选中多个复选框?

Posted

技术标签:

【中文标题】PHP:可以自动获取所有已发布的数据并且未选中多个复选框?【英文标题】:PHP: Possible to automatically get all POSTed data And Multiple checkbox unchecked? 【发布时间】:2016-01-14 09:36:50 【问题描述】:

你好朋友,我有麻烦了。

我正在尝试使用此代码来动态获取表单的变量和值,但是有无数数字复选框,可能会或没有标记,我想知道如何获得关闭或“0 " 万一这不是一个标记的复选框,这些数据已被使用 .ajax 和数据:

复选框的简短示例:

<input name="p-sis-0110-1" type="checkbox">
<input name="p-sis-0110-2" type="checkbox">
<input name="p-sis-0110-3" type="checkbox">
<input name="p-sis-0110-4" type="checkbox">
<input name="p-sis-0110-5" type="checkbox">
<input name="p-sis-0110-6" type="checkbox">

<input name="input[]" type="checkbox">
<input name="input[]" type="checkbox">
<input name="input[]" type="checkbox">
<input name="input[]" type="checkbox">
<input name="input[]" type="checkbox">
<input name="input[]" type="checkbox">
<input name="input[]" type="checkbox">

阿贾克斯:

.$("#formarea").serialize()

php

foreach ($_POST as $key => $value)
    echo "Field ".htmlspecialchars($key)." is ".htmlspecialchars($value)."<br>"

感谢任何有助于解决这个小难题的帮助。

【问题讨论】:

未选中的复选框根本不会发布。如果需要,您可以将它们的列表保留在隐藏字段中,但否则它们根本不会与服务器通信。 你是放弃这个还是什么??? 【参考方案1】:

仅提交“成功”控件。未选中的复选框或单选按钮不是“成功”。

您需要声明一个带有隐藏输入的默认值。确保隐藏输入位于复选框之前,因此如果选中该复选框,它将覆盖默认隐藏输入,因为名称相同:

<input name="p-sis-0110-1" type="hidden" value="0">
<input name="p-sis-0110-1" type="checkbox" value="1">

要使用数组,您需要显式定义索引,以便它们相同:

<input name="input[0]" type="hidden" value="0">
<input name="input[0]" type="checkbox" value="1">

【讨论】:

隐藏字段会在发送的帖子中被覆盖? 是的,如果复选框被选中,那么它将覆盖隐藏,因为名称相同。

以上是关于PHP:可以自动获取所有已发布的数据并且未选中多个复选框?的主要内容,如果未能解决你的问题,请参考以下文章

PHP:可以自动获取所有发布的数据吗?

在 PHP 中处理多个(未)选中复选框的最简单和最干净的方法

获取EasyUI的treegrid的checkbox所有已勾选的数据

在javascript和PHP中的字符串中获取多个选中的复选框值

js 怎么把所有选中的复选框 都变为 未选中状态

PHP MYSQL 查询未获取多个 WHERE 条件