代码之家  ›  专栏  ›  技术社区  ›  sam

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

  •  0
  • sam  · 技术社区  · 15 年前

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

    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#”之后的任何“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
    

    澄清:问题是“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 回复  |  直到 15 年前
        1
  •  2
  •   Sarfraz    15 年前

    更好的解决方案是将它们转换为数组,请尝试以下操作:

    <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>
    

    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
    }
    
        2
  •  0
  •   Extrakun    15 年前

      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
    )
    
    推荐文章