如何通过post方法发送数组

时间:2011-01-15 06:39:33

标签: php

以下是我的样本表格。

<form METHOD="post" METHOD="post" ACTION="index.php" METHOD="post" METHOD="post" METHOD="post">
<input TYPE="text" NAME="array[]" />
<input TYPE="text" NAME="array[]" />
<input TYPE="text" NAME="array[]" />
<input TYPE="text" NAME="array[]" />
<input TYPE="text" NAME="array[]" />
<input TYPE="text" NAME="array[]" />
<input TYPE="text" NAME="array[]" />
<input TYPE="text" NAME="array[]" />
<input TYPE="text" NAME="array[]" />
<input TYPE="text" NAME="array[]" />
<input TYPE="submit" NAME="submit" VALUE="Submit" />
</form>

基本上我有10个数组输入。假设我的域名为http://domain.com,上面的文件是index.php。我试图使用以下方法自动填写表单。

http://domain.com/index.php?array [] = John&amp; array [] = Kelly ......&amp;阵列[] =史蒂芬

不幸的是,它不起作用。 :(

3 个答案:

答案 0 :(得分:1)

你有没有试过这样的事情:

<?php
  foreach( $_GET['array'] as $arr )                                    // Loop through the `array` variables of GET
     echo '<input type="text" name="array[]" value="' . $arr . '" />'; // Display the the inputs
?>

但是,请确保在$ arr上使用清洁功能以防止XSS。您还需要检查是否设置了$ _GET ['array'],否则PHP会抱怨它。

答案 1 :(得分:0)

如果您尝试从GET请求(您的URL字符串)填写表单,则必须从$ _REQUEST数组中获取HTTP请求中的值(或者根据表单方法获取$ _GET或$ _POST)。建议:您应该更改表单字段的名称以反映它们存储的值

<form METHOD="post" METHOD="post" ACTION="index.php" METHOD="post" METHOD="post" METHOD="post">
<input TYPE="text" NAME="first_name" value="<?php echo $_REQUEST['first_name']?>"/>

注意:如上所示访问$ _REQUEST数组并不是一种好习惯,因为您需要先检查请求变量是否已设置,然后才能回显它们的值。

<form METHOD="post" METHOD="post" ACTION="index.php" METHOD="post" METHOD="post" METHOD="post">
<input TYPE="text" NAME="first_name" value="<?php echo isset($_REQUEST['first_name'])?$_REQUEST['first_name']:""?>"/>

答案 2 :(得分:0)

要尝试两件事。

  1. 您正在将GET方法与示例网址一起使用,但您的表单已设置为POST。在你的PHP中,当它实际上在$ _GET中时,你可能会在$ _POST中查找你的数据。您可以使用$ _REQUEST变量从POST和GET获取数据。
  2. 您可能需要对[]进行urlencode。 ([]在urlencoded时变为%5B%5D。)
  3. 最后,提示:在制作链接以通过GET查询字符串发送数据时,最佳做法是使用&amp;代替URL中的&amp;'s。