从表单发送的另一个页面中检索数组

时间:2012-03-01 21:14:39

标签: php arrays forms get shopping-cart

我想通过更改其值(输入)从表单传递数组。 用户可以更改输入的值, 如何检索更改的数组?

例如......

  <?php $vector = array("product1" => 150, "product2" => 120); ?>
  <table>
  <form action="page2.php" method="get">

  <?php foreach ($vector as $key => $value) { 
 echo "<tr><td>Product: $name</td><td><input type='text' name='$key' 
     value='$value'/>  
     </td>";
  }
  <tr>
<td><input type="submit" name="process" value="Submit" /></td>
  </tr>
  </form>
  </table>
  ?>

  // on the other page...page2.php

  if (isset($_GET['process'])){ 
 $foo = $_GET[$vector]; // the array i want
 echo var_dump($foo);
  }

3 个答案:

答案 0 :(得分:2)

HTTP,根据设计,允许通过POST / GET进行数组。只需要具有相同名称的相关项目,并以两个相对的方括号结尾,如下所示:

<input type="text" name="data[]" value"First"/>
<input type="text" name="data[]" value"Second"/>

在服务器上......

print_r($_REQUEST['data']);

...打印

Array
(
    [0] => First
    [1] => Second
)

非常方便,嗯?

答案 1 :(得分:1)

尝试做到这一点

$foo = $_GET ;

如果您不希望'进程'在数组中,请先调用

unset($_GET['process']);

答案 2 :(得分:1)

参数作为数组形式传递。所以你必须解析所请求的变量

以下是您的代码的修订版本。

<?php $vector = array("product1" => 150, "product2" => 120); ?>
  <table>
  <form action="page2.php" method="get">

  <?php foreach ($vector as $key => $value) { 
 echo "<tr><td>Product: $name</td><td><input type='text' name='$key' 
     value='$value'/>  
     </td>";
  }
  <tr>
<td><input type="submit" name="process" value="Submit" /></td>
  </tr>
  </form>
  </table>
  ?>

  // on the other page...page2.php

  if (isset($_GET['process'])){ 
    unset($_GET['process']);
    $foo = $_GET ;
    echo var_dump($foo);
 }