这让我发疯,所以任何帮助都非常感激。
我发布名称为= opc [1] cat [2]等的记录。理想情况下,这会创建一个数组。当我print_r发布的数据时,它会打印看起来像数组的内容,但是键周围有刻度和斜线。
但是,当我设置一个变量,$ array或等于数组的任何值时,print_r($ array)返回0. Echo返回Array。
可能与此相关,当我尝试对数组执行foreach时,它会给出无效的参数错误。我需要对发布的数据做什么,以便我可以将其设置为变量并将其用作有效数组。我已经尝试了各种implode,explode和stripslashes的组合,以使其更好地形成,但只有$ _POST在print_r中打印出来。 Implode会生成错误。爆炸创建一个只有一个项目的数组。
这是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>
答案 0 :(得分:2)
在查看HTML源代码之后,您似乎正在混淆有关如何将数组变量传递给$_POST
的方法。即使您希望它们发布到同一个数组,也不应该有两个具有相同“名称”的元素。要么纠正将数据输入数组变量的方法,要么以不同方式命名元素。
从name
属性中删除索引,然后再次尝试运行您的表单。
请参阅this related question以获取一些帮助。
<input type="text" size="12" name="ocp[]" value="cat"><input type="hidden" name="id[]" value="2"><input type="submit" value="submit"></form></tr>