我不知道我在这里想念的是什么,但我尝试用一个checbox制作一个非常简单的表格,这里是html:
(...)
<input type="checkbox" name="test[]" value="js"> Javascript <br>
<input type="checkbox" name="test[]" value="php"> PHP <br>
<input type="checkbox" name="test[]" value="sql"> SQL <br>
<input type="checkbox" name="test[]" value="html"> HTML <br>
(...)
这里是假设处理它的php片段:
echo '<pre>';
print_r($_POST['test']);
echo '</pre>';
print_r($_POST)
echo '<hr>';
这是输出
Array
Array
(
[stuff1] => 0
[stuff2] => 5
[stuff3] => 2
[test] => Array
)
表单的其他输入很好显示但我无法解析数组的内容,这只是一个名为“array”的示例字符串......
如果我尝试做
var_dump($_POST["test"]); //this is what I get: string 'Array' (length=5)
答案 0 :(得分:1)
有一个关于如何使用php处理复选框的好教程:http://www.html-form-guide.com/php-form/php-form-checkbox.html
基本上你的$_POST['test']
是一个数组,如果没有选中复选框,则为空。如果用户选择了["js","php"]
和js
,那就像php
。
如果您想循环浏览所有选定的选项,可以执行以下操作:
foreach ($it in $_POST['test']) {
echo $it
}
答案 1 :(得分:0)
我找到了它,原因是我正在使用一个旧的框架,在激活magic_quotes或不激活的情况下发出一个奇怪的声明,我已经激活了magic_quotes,因此它会转义$ _POST变量中包含的任何数组...
foreach ($_POST as $key => $value) {
if ($value && !$is_magic_quotes_gpc) {
$_POST["$key"] = addslashes($value);
}
}
我只是删除了这个片段,一切都没事了