2014-05-15 22 views
0

我有一個由Mailchimp(電子郵件營銷活動服務)創建的表單,允許用戶訂閱新聞稿。我想在表單提交後發送表單內容的電子郵件,併發布原始表單操作。如何通過表單發送POST請求,同時發送表單內容的電子郵件?

伊夫使用的PHP的mail()函數來做到這一點,從這個環節採取,並且它工作得很好: Send email with PHP from html form on submit with the same script

但我不知道如何從我訂閱的形式提交原帖動作:

<form action="http://mailchimpurl.com/subscribe/post" method="POST"> 

再次,我想發送表單內容的電子郵件,並且還有發送的訂閱郵件請求。

感謝您的幫助!

+0

你在網站上使用jQuery嗎?如果這是一個選項,這將是非常簡單的。 – Steve

+0

是的,我正在使用jQuery。謹慎解釋如何? – stevelaaaa

+0

看到約翰的答案(也許請他擴大ajax的處理方式),他的回答就是我的目標。雖然Quentin是正確的,你會更好地使用mailchimp api,如果你有訪問 – Steve

回答

0

如果你的動作指向一個你不能添加任何PHP郵件()或類似的位置,我會考慮觸發這個客戶端與JS/jQuery/ajax。

var sendEmail = '[email protected]&subject=....' 

$("#submit").click(function(){ 
    // use ajax to trigger an external php file with mail() 
    $.ajax({ url: sendEmail, data: {action: sendEmail}, type: "post", success: function(output) { } }); 
}); 

在PHP文件我只是拉使用$_GET('email')等所有的URL參數...

喜歡的東西thisthis有類似的技術USINT $。員額代替,雖然我沒有他們測試了我。

+0

「發送電子郵件在這裏」?怎麼樣? jQuery沒有任何電子郵件發送功能。 – Quentin

+0

從我的理解你不能通過JavaScript發送電子郵件。你打算怎麼做? – stevelaaaa

+0

「使用ajax發送電子郵件」 - 這是行不通的。在發送HTTP請求之前,表單將提交併且JS執行環境將消失。 – Quentin

0

對於任何形式的提交通常更適合提交到一個端點和一個端點。

將操作設置爲指向您自己的服務器。然後讓處理請求的程序按順序執行兩個不同的事情。

  1. 發送電子郵件給你,使用腳本,你已經有
  2. 訂閱用戶的郵件列表,使用your service provider's API
+0

謝謝,這是有道理的。但是有沒有一種方法可以使用Mailchimp爲我生成的表單,以便我不必使用API​​? – stevelaaaa

+0

沒有人會推薦使用。你可以使用JS來停止提交的表單,然後使用JS收集數據並將其發送到服務器,然後等待響應,然後使用JS觸發表單提交......但這很麻煩,取決於JS。 – Quentin

0
$('#yourform').submit(function(ev) { 
    ev.preventDefault(); //stop form submitting 

    theform = this; 

    $.post("example.php", $(this).serialize()).done(function() { 
     theform.submit(); 
    }); 

}); 
+0

這沒有爲我工作。 'form.submit();'得到了「Uncaught TypeError:object不是函數」。如果我在'.done(function(){})'中嘗試'$('#yourform')。submit();',我會得到一個無限循環。 – stevelaaaa

+0

@StephenL請使用全局變量的不同名稱,我已將其更改爲我的編輯中的'theform'。我相信這可能是你的錯誤的來源 – Steve

+0

我不認爲這是問題,我試過'form1 = this'並得到了同樣的錯誤。 – stevelaaaa