我是一個絕對的PHP n00b,所以我可以使用一些幫助一小片段。提交簡單的表單,循環和發送郵件?
我有一個簡單的形式與幾個無線電和輸入字段。一旦它們全部填滿並且用戶提交表單,我希望通過jQuery AJAX將其提交給PHP文件,該文件循環遍歷請求中的所有表單元素,將它們添加到字符串中,並將該字符串作爲電子郵件(帶有預定義的主題)到預定義的電子郵件帳戶。你將如何去在PHP這個簡單的任務?
我是一個絕對的PHP n00b,所以我可以使用一些幫助一小片段。提交簡單的表單,循環和發送郵件?
我有一個簡單的形式與幾個無線電和輸入字段。一旦它們全部填滿並且用戶提交表單,我希望通過jQuery AJAX將其提交給PHP文件,該文件循環遍歷請求中的所有表單元素,將它們添加到字符串中,並將該字符串作爲電子郵件(帶有預定義的主題)到預定義的電子郵件帳戶。你將如何去在PHP這個簡單的任務?
你可以做類似
<?php
$to = '[email protected]';
$subject = 'website form';
$message= '';
foreach ($_POST as $key => $value)
{
$message .= $key . ': ' . $value . PHP_EOL;
}
mail($to, $subject, $message);
?>
這行「foreach($ _POST as key =>值)」失敗,出現「Parse error:syntax error,unexpected T_DOUBLE_ARROW,expect T_PAAMAYIM_NEKUDOTAYIM ..」?如果我刪除的foreach它按預期工作:) – brother 2012-03-29 13:16:20
應該是:'foreach($ _POST作爲$ key => $ value)' – ghbarratt 2012-03-29 13:17:59
明白了!取而代之的是「foreach($ _POST as $ name => $ value)」,這很有效。謝謝! – brother 2012-03-29 13:18:47
// html_file.html
<form action="" method="POST">...</form>
<script>
$("form").on("submit", function()
{
$.post($(this).attr("action"), $(this).serialize());
});
</script>
// some_php_file.php
<?php
..
foreach ($_POST as $post_field) {} // process posted data
mail(..) //send mail
$message = '';
$fields_to_place = array('name', 'message', 'phone', 'status');
foreach($fields_to_place as $f)
{
if(isset($_POST[$f])) $message .= $f.': '.$_POST[$f]."\n";
}
$headers = "From: [email protected]\r
Reply-To: ".$_POST['email']."\r\n";
mail('[email protected]', 'Contact Form', $message, $headers);
下面的腳本可以被包含在它的形式,也可以與下面的代碼單獨的PHP文件的PHP文件中, php文件必須提到的動作屬性的形式
<?php
$content= "First Name: ".$_POST['firstname']."\n";
$content.= "Last Name: ".$_POST['lastname']."\n";
$to = "[email protected]" ;
$headers .= "MIME-Version: 1.0\n";
$headers .= "Mailed-By: test.com\n";
$headers .= "Content-Type: text/HTML; charset=ISO-8859-1\n";
$headers = 'From:'.$_POST['email'] . "\r\n" .'Reply-To:'.$_POST['email'] . "\r\n" .'X-Mailer: PHP/' . phpversion();
if(mail($to,'testsubject',$content,$headers)){
?>
<script type="text/javascript">
alert("Thank you for contacting us.We will get back to you soon.");
window.location.href="index.php";
</script>
<?php
}else{
?>
<script type="text/javascript">
alert("mail not sent! Please try after some time!");
window.location.href="index.php";
</script>
<?php
}
?>
在這裏在內容變量($內容)你可以廣告d從所提到的表格中發佈的字段。在$到變量中,您可以提及郵件必須發送到的地址。這會比使用jQuery或AJAX更簡單。
你可以發佈一些你的代碼嗎? – 2012-03-29 12:56:30
這不是一個「小片段」。這是分散在多種編程語言中的大量不同任務。把它分解成不同的問題,然後逐一解決它們。 – Quentin 2012-03-29 12:57:21
我不需要窗體幫助,輸入驗證,jQuery AJAX提交等。它只是通過表單請求循環併發送電子郵件的PHP片段。對不起,如果我在我的文章模糊。 – brother 2012-03-29 13:00:16