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

发布于 2024-11-03 21:55:48 字数 908 浏览 2 评论 0原文

我不知道我在这里错过了什么,但我尝试制作一个非常简单的表单,其中有一个复选框,这里是 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)

I don't know what I miss here but I try to make a really simple form with a checbox in it, here is the 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>
(...)

and here is the php snippet which suppose to handle it:

    echo '<pre>';
    print_r($_POST['test']);
    echo '</pre>';
    print_r($_POST)
    echo '<hr>';

here is the output

Array
Array
(     
    [stuff1] => 0
    [stuff2] => 5
    [stuff3] => 2
    [test] => Array        
)

The other input of the forms are well display but I can't parse the content of the array which is just a sample string named "array"...

If i try to do a

var_dump($_POST["test"]); //this is what I get: string 'Array' (length=5)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

打小就很酷 2024-11-10 21:55:48

有一个关于如何使用 php 处理复选框的很好的教程: http://www.html-form-guide.com/php-form/php-form-checkbox.html

基本上你的 $_POST['test'] 是一个数组,如果没有选中复选框,则为空。如果用户选择 jsphp,则结果类似于 ["js","php"]

如果您想循环浏览所有选定的选项,您可以这样做:

foreach ($it in $_POST['test']) {
   echo $it
}

There is a good tutorial about how to handle checkbox using php : http://www.html-form-guide.com/php-form/php-form-checkbox.html

Basically your $_POST['test'] is an array, that is empty if no checkbox was checked. And that would be like ["js","php"] if the user selected js and php.

If you want to cycle through all selected choices, you could do :

foreach ($it in $_POST['test']) {
   echo $it
}
冬天旳寂寞 2024-11-10 21:55:48

我找到了它,原因是我正在使用一个旧框架,该框架在激活或不激活 magic_quotes 的情况下都会发出奇怪的语句,我激活了 magic_quotes,因此它转义了 $_POST 变量中包含的任何数组...

foreach ($_POST as $key => $value) {
    if ($value && !$is_magic_quotes_gpc) {
        $_POST["$key"] = addslashes($value);
    }
}

我只是删除了此代码片段并一切顺利

I found it, the reason is that I'm using an old framework that make a strange statement within or without magic_quotes activated, Ive got magic_quotes activated so it's escaping any array contained in the $_POST variables...

foreach ($_POST as $key => $value) {
    if ($value && !$is_magic_quotes_gpc) {
        $_POST["$key"] = addslashes($value);
    }
}

I just remove this snippet and everything went allright

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文