PHP:没有收到一些POST变量?

时间:2010-03-03 11:26:51

标签: php html forms

我有一个表单,它传递以下值:

image_title,
image_description,
image_file

我想多次呈现此表单,因此我执行了以下操作:

image_title_1,
image_description_1,
image_file_1

image_title_2,
image_description_2,
image_file_2

多次,所以我有1到10个字段。我提交表单并打印出POST数组的内容,唯一的问题是数组中不存在“image_title_1”之后的任何“image_title_#”:但其他一切都有。

所以数组看起来像:

image_title_1 -> "title!"
image_description_1 -> "description!"
image_file_1 -> file

image_description_2 -> "description!"
image_file_2 -> file

image_description_3 -> "description!"
image_file_3 -> file

所以要弄清楚它是什么我互相交换了描述和标题,但是标题仍然没有在1之后显示。我没有做任何处理,我实际上只是打印出$ _POST数组之前甚至触摸它。这没有任何意义,可能是什么导致它?

澄清:问题是“image_title_#”(例如:image_title_3)除了image_title_1之外没有通过,即使我重新安排了订单。在输出之前我没有处理。

编辑,html源只是:

<form method="post" action="">
    <input type="text" name="image_title_1"></input>
    <input type="text" name="image_description_1"></input>
    <input type="text" name="image_file_1"></input>

    <input type="text" name="image_title_2"></input>
    <input type="text" name="image_description_2"></input>
    <input type="text" name="image_file_2"></input>

    <input type="text" name="image_title_3"></input>
    <input type="text" name="image_description_3"></input>
    <input type="text" name="image_file_3"></input>

    <input type="submit" name="submit" value="submit"></input>
</form>

2 个答案:

答案 0 :(得分:2)

更好的解决方案是将它们转换为数组,试试这个:

<form method="post" action="">
    <input type="text" name="image_title[]"></input>
    <input type="text" name="image_description[]"></input>
    <input type="text" name="image_file[]"></input>

    <input type="submit" name="submit" value="submit"></input>
</form>

现在,在您的PHP脚本中,您可以获得这样的数组:

print_r($_POST['image_title']);
print_r($_POST['image_description']);
print_r($_POST['image_file']);

使用[]的后缀字段名称将其转换为数组。这里的另一个好处是它也缩短了你的代码。

获得数组后,可以使用foreach

循环遍历它们
foreach($_POST['image_title'] as $key => $value)
{
  // process them any way you want
}

答案 1 :(得分:0)

代码有效。我只是剪切并粘贴您的表单并进行测试提交

  Array
(
[image_title_1] => 1
[image_description_1] => 2
[image_file_1] => 3
[image_title_2] => 4
[image_description_2] => 5
[image_file_2] => 6
[image_title_3] => 7
[image_description_3] => 8
[image_file_3] => 9
[submit] => submit
)