0

这让我发疯了,所以非常感谢任何帮助。

我正在发布带有 name=opc[1] cat[2] 等的记录。理想情况下,这将创建一个数组。当我 print_r 发布的数据时,它会打印出看起来像数组的东西,尽管键周围有刻度和斜线。

但是,当我设置一个变量 $array 或任何等于数组的值时,print_r($array) 返回 0。Echo 返回 Array。

可能与此相关,当我尝试对数组执行 foreach 时,它给出了一个无效的参数错误。我需要对发布的数据做些什么,以便我可以将其设置为变量并将其用作有效数组。我尝试了 implode、explode 和 stripslashes 的各种组合以将其转换为更好的形式,但只有 $_POST 在 print_r 中打印出来。内爆会产生错误。Explode 创建一个只有 1 个项目的数组。

这是 print_r($_POST['opc']);

Array ( [\'0\'] => dog [\'1\'] => cat [\'2\'] => mouse [\'3\'] => chicken [\'4\'] => runner [\'5\'] => )

我需要做什么才能使用它?

表单代码(前两条记录):

<tr><form action="editcats.php" method="post"><td align="right">Existing:</td><td align="left"><input type="text" size="12" name="ocp[0]" value="dog"><input type="hidden" name="id[0]" value="1"></tr>
<tr><td align="right"></td><td align="left"><input type="text" size="12" name="ocp[1]" value="cat"><input type="hidden" name="id[1]" value="2"><input type="submit" value="submit"></form></tr>
4

1 回答 1

2

查看您的 HTML 源代码后,您似乎混淆了如何将数组变量传递给$_POST. 即使您希望它们发布到同一个数组,也不应该有两个具有相同“名称”的元素。纠正将数据输入数组变量的方法,或者以不同的方式命名元素。

从您的name属性中删除索引并尝试再次运行您的表单。

请参阅此相关问题以获得一些帮助。

<input type="text" size="12" name="ocp[]" value="cat"><input type="hidden" name="id[]" value="2"><input type="submit" value="submit"></form></tr>
于 2012-04-17T17:09:10.210 回答