通过$ _POST将表单中的动态数组发送到html电子邮件

时间:2013-06-14 19:18:18

标签: php forms post html-email

这个标题可能不会很好地描述我的问题,但我不确定如何命名这篇文章......无论如何,我有一个动态生成输入框的表单,用以下内容拉过去4年:

<?php
    $current_date = new DateTime();
    for ($i = 1; $i <= 4; $i++) {
        $current_date->modify('-1 year');
        $date_string = $current_date->format('Y')
?>

<fieldset name="gross_sales">
    <input type="number" name="year_brand_gross[<?php echo $date_string; ?>]" placeholder="Gross Sales for <?php echo $date_string; ?>">
</fieldset>

<?php
} // end while
?>

一旦用户点击提交,表单数据将通过包含以下内容的process.php文件进行处理:

$year_brand_gross[1] = $_POST['year_brand_gross'][1];
$year_brand_gross[2] = $_POST['year_brand_gross'][2];
$year_brand_gross[3] = $_POST['year_brand_gross'][3];
$year_brand_gross[4] = $_POST['year_brand_gross'][4];

现在我很确定上面的部分是不对的。所以这是我的问题......我如何从这些输入中获取信息到我的电子邮件中,因为它们是由数组创建的,而不是“实际”。这是我发送的html电子邮件的精简版本,我很确定这也是错误的,因为上面的代码不正确:

<table>
    <tr>
        <td>Gross Sales:</td>
    </tr>
    <tr>
        <td>{$year_brand_gross[1]}</td>
        <td>{$year_brand_gross[2]}</td>
        <td>{$year_brand_gross[3]}</td>
        <td>{$year_brand_gross[4]}</td>
    </tr>
</table>

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

您的表单实际上看起来像

<input type="number" name="year_brand_gross[2012]" ... />
<input type="number" name="year_brand_gross[2011]" ... />
<input type="number" name="year_brand_gross[2010]" ... />
etc...

这意味着您需要使用

$_POST['year_brand_gross'][2012]
$_POST['year_brand_gross'][2011]
$_POST['year_brand_gross'][2010]
etc...

在服务器上。

答案 1 :(得分:0)

foreach($_POST['year_brand_gross'] AS $yeah => $value) {
  // use $year and $value variables to do whatever
  // this code will execute once for each values in $_POST['year_brand_gross'].
  // note: print_r($_POST);
  // $_POST is an array, same for $_GET and so on
}