是否可以将表单字段值转换为数组? EX:
<?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中的数组吗?
答案 0 :(得分:11)
已经完成了。
查看$_POST
数组。
如果你做了print_r($_POST);
,你会发现它是一个数组。
如果您只需要值而不是密钥,请使用
$values = array_values($_POST);
答案 1 :(得分:11)
是的,只需将输入命名为相同的内容,并在每个输入后放置括号:
<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']);
?>
答案 2 :(得分:5)
这实际上是PHP的设计方式,也是早期在网络编程中实现大规模市场渗透的原因之一。
当您向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
,其中包含这三者的组合。
有关详细信息,请参阅doc page on Superglobals。