如何使用php中的循环访问具有多个输入的表单输入变量值?

时间:2015-08-10 13:38:00

标签: php

我们说我有一个"fieldname",它在HTML表单中有多个表单输入。在表单name="fieldname[]"中。

然后我设置了一个fieldname变量:

 $fieldname = $_POST['fieldname'];

然后我会使用循环来访问每个值:

 foreach ( $_POST['fieldname'] as a_name ) {
     echo $a_name;
 }

我想在"fieldname"下面的$email_body变量中使用$email_body = "Auto Quote\n From: $email \n $address, $carrier"中的每个值,然后使用邮件功能。

我有一个email_body变量,用于我的邮件功能:      $a_name

我是否只将email_body包含在foreach循环的波浪括号中?然后将{{1}}变量放在引号中?或者在我的(未显示)邮件功能中使用它会更好吗?

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您不确定如何在邮件正文中使用$a_name变量。当然,如何执行此操作取决于您希望放置表单输入的邮件正文中的位置,但以下内容可能有效:

$fieldname = $_POST['fieldname'];
$email_body = "Auto Quote\n From: $email \n $address, $carrier \n"

foreach ($_POST['fieldname'] as $a_name ) {
    $email_body .= $a_name . "\n";
}

这会将“fieldname”表单中的输入附加到邮件正文中。如果您想将输入放在不同的位置,您应该清楚地切换。 ;)

答案 1 :(得分:0)

你做了几乎所有事情。 $_POST['fieldname']是一个数组,因此在$fieldname = $_POST['fieldname'];之后,数组的副本位于$fieldname,无需再使用$_POST['fieldname']

将每个内容添加到邮件正文中:

$body = 'Whatever text before: ';

foreach ($fieldname as $index => $value ) {
  $body .= $index . ': ' . $value . ';';
}

$body .= 'text after.';

//send your e-mail

您可以直接使用$_POST['fieldname']而不使用$fieldname变量。

如果需要,我会放置一个您可以忽略的索引,如果需要,请参阅PHP foreach文档http://php.net/manual/en/control-structures.foreach.php

当正在使用来自客户端的文本时,您必须意识到一个点本身在一行上结束电子邮件正文的事实,我不知道PHP邮件函数如何处理这个,可能是一些测试是合适的。