我正在构建一个确认页面和一个简单的购物车脚本。但是我无法使用我在页面末尾放置的“发送”按钮通过邮件发送值。
如果我没有将邮件程序部分包含在按钮的“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>
答案 0 :(得分:1)
我假设您将其他页面的帖子数据发送到此页面?如果您在发布到此页面后再使用get
方法提交另一个表单,则$_POST
变量将不再包含任何内容,因为您向此页面提交了另一个表单(通过get
)。您需要一些方法来保存发布的数据(可能是一个php会话),这样当您单击Send Order
提交按钮时,之前发布的数据不会丢失。