来自html表单的$ _POST数组

时间:2012-07-26 18:46:31

标签: php

我正在尝试从多个复选框(id [])发送数据并创建一个数组" info"在PHP中允许我为每个值运行一个脚本(但是每次都可以更改值的数量)但是首先我尝试显示每个数组值的内容。我不太确定如何将我的数组填充行保存到数组中的所有内容。

HTML

echo("<input name='id[]' type='checkbox' value='".$shopnumb."'>");

我目前的希望处理代码是 -

$info=$_POST['id[]'];
Echo(array_values($info));

我需要做些什么来使表单中的帖子通过表单复选框填充数组信息

非常感谢任何帮助

编辑以供澄清。

4 个答案:

答案 0 :(得分:33)

更改

$info=$_POST['id[]'];

$info=$_POST['id'];

通过在表单字段名称的末尾添加[],PHP会自动将这些变量转换为数组。

答案 1 :(得分:8)

你应该在$ _POST ['id']中得到数组。所以你应该能够做到这一点:

foreach ($_POST['id'] as $key => $value) {
    echo $value . "<br />";
}

输入名称应相同:

<input name='id[]' type='checkbox' value='1'>
<input name='id[]' type='checkbox' value='2'>
...

答案 2 :(得分:6)

<input name='id[]' type='checkbox' value='".$shopnumb."\'>
<input name='id[]' type='checkbox' value='".$shopnumb."\'>
<input name='id[]' type='checkbox' value='".$shopnumb."\'>


$id = implode(',',$_POST['id']);
echo $id

你不能回显数组,因为它只会打印出数组。如果您想打印出数组,请使用print_r

print_r($_POST['id']);

答案 3 :(得分:2)

我不知道我是否理解你的问题,但也许:

foreach ($_POST as $id=>$value)
    if (strncmp($id,'id[',3) $info[rtrim(ltrim($id,'id['),']')]=$_POST[$id];

会有所帮助

那就是如果你真的想在html表单的每个复选框上都有一个不同的名字(id [key])(效率不高)。如果没有,你可以将它们全部命名,即“id&#39;并迭代数组的(选定)值,如:foreach ($_POST['id'] as $key=>$value)...