循环遍历php $ _POST,并通过电子邮件发送值

时间:2014-02-19 14:26:11

标签: php email variables loops post

我正在构建一个确认页面和一个简单的购物车脚本。但是我无法使用我在页面末尾放置的“发送”按钮通过邮件发送值。

如果我没有将邮件程序部分包含在按钮的“if”条件内,它就会工作并在页面加载时发送内容。但是当我把它包装在“if”状态时,我只收到一封空白的电子邮件。


更新: 在上一页中,我有“订购”表格,我已经从method =“post”切换到method =“get”。

在第二页中,

我已将循环内的方法从$ _POST更改为$ _GET。至于按钮保持$ _POST方法与表单内的方法=“post”(在底部)。现在它有效,但我不明白为什么。

第一页,表格:

<!DOCTYPE html>
<head>
<title>Alm Chalet Menu</title>
<link href="css/template.css" type="text/css" rel="stylesheet" />

</head>
<body>

<h2>Alm Chalet Menu</h2>

<p>Biologische Säfte </p>
<form method="get" action="order.php">
<p><input type="number" name="orange" min="0" value="0" class="count_style">
Orange</p>
<p><input type="number" name="multivitamine" min="0" value="0" class="count_style">Multivitamine</p>
<input type="submit" name="send" value="Send Menu" />
</form>




</body>
</html>

第二,确认页面:

<!DOCTYPE html>
<head>
<link href="css/template.css" type="text/css" rel="stylesheet" />
<title>Ordered Food</title>
</head>
<body>

Your order the following:

<table id="order_table">
<tbody>

<?php
$items = '';

foreach($_POST as $key => $value){ 
    if ($value == 0) {
        continue;   
}
    echo "<tr><td>$key</td><td class='value'>$value</td></tr>"; 
    $items .= "$key: $value\n";
}

if (isset($_GET['send'])) {
$message = $items;
mail("****@yahoo.com", $subject, $message, $headers); 
echo "<p>Thanks for your order!</p>";
}
?>

</tbody>
</table>

<p>
<form method="get">
<input name="send" type="submit" value="Send Order">
</form>
</p>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

我假设您将其他页面的帖子数据发送到此页面?如果您在发布到此页面后再使用get方法提交另一个表单,则$_POST变量将不再包含任何内容,因为您向此页面提交了另一个表单(通过get )。您需要一些方法来保存发布的数据(可能是一个php会话),这样当您单击Send Order提交按钮时,之前发布的数据不会丢失。