1

我正在尝试设置一个等于我的 $_POST 变量的子数组之一的变量。

$array[] = $_POST['contact-info'];
echo $array['email'];

但它不会工作,因为它会回显 NULL。

有什么建议么?

4

4 回答 4

1

将此子数组分配给变量不需要方括号。

$array = $_POST['contact-info'];
echo $array['email'];
于 2013-06-25T21:55:47.500 回答
0

如其他地方所述,电子邮件目前是空的。数组的结构应该与表单匹配,如果您的表单是

name="contact-info[email]"

然后在 PHP 中你可以访问它

$contact_info = $_POST['contact-info'];
$email = $contact_info['email'];

或者

$email = $_POST['contact-info']['email'];

此外,在调试数组时尝试更清楚一点,它可以更容易地发现关联。

<pre>
<?php print_r($_POST);?>
</pre>
于 2013-06-25T23:03:26.280 回答
0

$_POST 根本不是多维数组。echo print_r($_POST,1);将向您展示 $_POST 中的确切内容。使用时,PHP 将始终使用键(字符串)-值(字符串)对为您填充 $_POST。如果 $_POST 确实包含子数组,那么它可能是由您自己或您正在使用的某个框架填充的。

现在我猜这contact-info是您提交的表单的表单名称。读取提交的表单时,表单名称并不重要。您可以通过发送的字段名称直接访问发送的数据。

例如,如果您有:

<form name="contact-info" action="yourscript.php" method="post">
  Please enter your e-mail address:<br/>
  <input name="email" type="text" value="" />
</form>

然后在你的 php 脚本中你应该有:

<?php
  echo "You just entered: " . $_POST['email']; 
?>
于 2013-06-25T22:41:20.633 回答
0

$array['email']永远不会设置。你像这样设置数组:

$array[] = $_POST['contact-info'];

因此,假设这是您第一次使用$array,那么您将通过以下方式访问电子邮件:

echo $array[0]['email'];

如果你不需要$array多维,你总是可以这样做:

$array = $_POST['contact-info'];
echo $array['email'];
于 2013-06-25T22:52:16.627 回答