在PHP中将表单值存入数组

3

是否可以将表单字段值存储到数组中?示例:

<?php
     array('one', 'two', 'three');
?>

<form method="post" action="test.php">
    <input type="hidden" name="test1" value="one" />
    <input type="hidden" name="test2" value="two" />
    <input type="hidden" name="test3" value="three" />
    <input type="submit" value="Test Me" />
</form>

在PHP中,是否有可能传递所有表单值(不论数量)到数组中?

3个回答

13
是的,只需给每个输入命名相同的名称并在每个名称后面加上方括号即可:
<form method="post" action="test.php">
    <input type="hidden" name="test[]" value="one" />
    <input type="hidden" name="test[]" value="two" />
    <input type="hidden" name="test[]" value="three" />
    <input type="submit" value="Test Me" />
</form>

然后您可以使用以下方式进行测试:

<?php
    print_r($_POST['test']);
?>

12

已经完成了。

看看 $_POST 数组。

如果你运行 print_r($_POST); ,你应该会看到它是一个数组。

如果你只需要值而不是键,使用

$values = array_values($_POST);

参考资料:$_POST


太好了,我该如何从被提交的数组中去掉提交按钮?还有,我该如何向数组中添加一些元素? - Gandalf StormCrow
我不会向那个数组添加任何东西。至于按钮,只需将名称字段留空即可。 - Daniel A. White

6

这实际上是PHP设计工作的方式之一,也是它在Web编程早期就取得了大量市场份额的原因之一。

当您向PHP脚本提交表单时,所有表单数据都被放入超级全局数组中,随时可以访问。例如,提交您提出问题的表单:

<form method="post" action="test.php">
    <input type="hidden" name="test1" value="one" />
    <input type="hidden" name="test2" value="two" />
    <input type="hidden" name="test3" value="three" />
    <input type="submit" value="Test Me" />
</form>

这意味着在test.php文件中,你会有一个名为$_POST的全局变量,它将被预填充,就好像你已经用表单数据创建了它一样,基本上是这样的:
$_POST = array('test1'=>'one', 'test2'=>'two', 'test3'=>'three');

有针对POST和GET请求的超全局变量,即$_POST$_GET。有一个用于cookie数据的变量$_COOKIE。还有一个包含所有三个变量的组合变量$_REQUEST
请参阅超全局变量的文档页面获取更多信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接