提交表单后无法读取复选框数组的值

时间:2011-04-27 12:15:34

标签: php html forms checkbox form-submit

我不知道我在这里想念的是什么,但我尝试用一​​个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)

2 个答案:

答案 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);
    }
}

我只是删除了这个片段,一切都没事了