23

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

HTML

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

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

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

我需要做什么才能使表单复选框中的邮寄发送的内容填充数组信息

任何帮助是极大的赞赏

为澄清而编辑。

4

4 回答 4

38

改变

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

$info=$_POST['id'];

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

于 2012-07-26T18:50:12.300 回答
16

你应该得到像 $_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'>
...
于 2012-07-26T18:54:37.360 回答
8
<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

你不能回显一个数组,因为它只会打印出 Array. 如果你想打印出一个数组,请使用print_r.

print_r($_POST['id']);
于 2012-07-26T18:52:05.040 回答
2

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

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

有助于

也就是说,如果您真的想在 html 表单的每个复选框上使用不同的名称(id[key])(效率不是很高)。如果不是,您可以将它们全部命名为相同的名称,即“id”并迭代数组的(选定)值,例如:foreach ($_POST['id'] as $key=>$value)...

于 2012-07-26T18:56:15.620 回答