我想通过更改其值(输入)从表单传递数组。 用户可以更改输入的值, 如何检索更改的数组?
例如......
<?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);
}
答案 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);
}