我正在构建一个确认页面和一个简单的购物车脚本。但是,我无法使用页面末尾的“发送”按钮通过邮件发送这些值。
如果我没有在按钮的" If“条件中包装mailer部分,它就会工作,并在页面加载时发送内容。但是当我把它包装在"if“条件下时,我只收到一封空白的电子邮件。
更新:在上一页中,wich有“订购”表单,我已经从method="post“切换到method="get”。
在第二页,
我已经将循环中的方法从$_POST更改为$_GET。至于按钮,将$_POST方法与表单中的method="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>
发布于 2014-02-19 06:37:59
我想你是在从其他页面发送帖子数据到这个页面吧?如果是这样,在发布到此页面之后,然后使用get
方法提交另一个表单,则$_POST
变量将不再包含任何内容,因为您向此页面提交了另一个表单(通过get
)。您需要某种方式保存已发布的数据(可能是php会话),这样当您单击Send Order
提交按钮时,以前发布的数据就不会丢失。
https://stackoverflow.com/questions/21883381
复制相似问题