我尝试使用var_dump(或echo)列出所有$ _POST数组项,但不显示空值项。如果我使用var_dump($ _ POST)null不会出现,但是如果我使用var_dump($ _ Post [“nullitem”])则出现null:
<html>
<head>
</head>
<body>
<?php
if ($_POST["submit"]){
var_dump($_POST);
foreach ($_POST as $key => $value) {
echo $key."=>";
echo $value;
echo " - ";
}
echo "<br>";
echo "ck_1 "; var_dump($_POST["ck_1"]);
echo "ck_2 "; var_dump($_POST["ck_2"]);
echo "ck_3 "; var_dump($_POST["ck_3"]);
}
?>
<form action='test.php' method='post' name='form_example' id='test'>
<label for='ck_1'>
<input type='checkbox' value=1 id='ck_1' name='ck_1' />
1 </label>
<label for='ck_2'>
<input type='checkbox' value=1 id='ck_2' name='ck_2' checked='checked' />
2 </label>
<label for='ck_3'>
<input type='checkbox' value=1 id='ck_3' name='ck_3' />
3 </label>
<input type='submit' name='submit' value='Submit' />
</form>
</body>
</html>
仅检查ck_2,因此此示例将输出:
阵列 'ck_2'=&gt;字符串'1'(长度= 1) 'submit'=&gt;字符串'提交'(长度= 6)
ck_2 =&gt; 1 - submit =&gt;提交 -
ck_1 null ck_2字符串'1'(长度= 1) ck_3 null
如何在foreach循环中包含所有$ _POST值(我不知道$ _POST数组中有多少个键或名称) 感谢帮助 此致
抱歉。 未设置未选中的复选框,因此不是$ _POST数组的成员,并且不会显示 获取未选中复选框值的方法是设置具有相同名称和ID以及未选中值的隐藏字段(如0),因此在发布时如果返回未选中的隐藏值:
<input type="hidden" name="cx1" value="0" />
<input type="checkbox" name="cx1" value="1" />
感谢Midzai
答案 0 :(得分:0)
试试这个
<html>
<head>
</head>
<body>
<?php
if ($_POST["submit"]){
echo "<pre>";
print_r(array_filter($_POST["ck_1"]));
echo "</pre>";
}
?>
<form action='test.php' method='post' name='form_example' id='test'>
<label for='ck_1'>
<input type='checkbox' value=1 id='ck_1' name='ck_1[]' />
1 </label>
<label for='ck_2'>
<input type='checkbox' value=1 id='ck_2' name='ck_2[]' checked='checked' />
2 </label>
<label for='ck_3'>
<input type='checkbox' value=1 id='ck_3' name='ck_3[]' />
3 </label>
<input type='submit' name='submit' value='Submit' />
</form>
</body>
</html>
答案 1 :(得分:0)
我认为你在你的foreach中包含$ _POST数组的所有值。问题是,如果你没有勾选复选框,$ _POST数组将不包含它的键也不包含它的值。
复选框我认为只有一个值可用,只有在您“签入”复选框时才会显示。另外,$ _POST没有填充密钥。为什么在使用指定的键名(未设置的复选框的名称)直接查询$ _POST时看到NULL,$ _POST数组中不存在该键,并返回返回NULL的内容。
如果您出于某些不明原因需要列出可供选择的所有复选框,您可以添加
<input type='hidden' name='cbNames[]' value='ck_1'/>
<input type='hidden' name='cbNames[]' value='ck_2'/>
<input type='hidden' name='cbNames[]' value='ck_3'/>
对于您网站上的每个复选框,然后通过$ _POST ['cbNames']数组列出并查询$ _POST:
foreach ($_POST['cbNames'] as $cbName)
print $_POST[$cbName];