我正在尝试从多个复选框(id [])发送数据并创建一个数组" info"在PHP中允许我为每个值运行一个脚本(但是每次都可以更改值的数量)但是首先我尝试显示每个数组值的内容。我不太确定如何将我的数组填充行保存到数组中的所有内容。
HTML
echo("<input name='id[]' type='checkbox' value='".$shopnumb."'>");
我目前的希望处理代码是 -
$info=$_POST['id[]'];
Echo(array_values($info));
我需要做些什么来使表单中的帖子通过表单复选框填充数组信息
非常感谢任何帮助
编辑以供澄清。
答案 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)...