2014-02-27 71 views
0

這可能很簡單,但我沒有在網上找到任何東西。通過電子郵件發送html表格並同時提交給服務器

我想要做的是製作一個帶有action =「MAILTO:...」標籤的html表單,這樣用戶就可以發送填充了數據的郵件。我知道如何做到這一點。 我還想要的是,相同的數據同時進入一個PHP腳本,將其存儲在數據庫中。我也知道該怎麼做(腳本部分,就是這樣)。

我不知道的是如果用戶點擊提交按鈕,如何做到這一點。因此,用戶點擊,獲得他/她可以編輯然後發送的郵件,同時表單數據將轉到將數據存儲在數據庫中的腳本中。他們基本上可以填寫他們想要的內容,或將字段留空,所以我不需要對內容進行任何檢查(當然除了安全原因)。

我會很感激任何指針。

謝謝。

+1

您應該使用郵件腳本(https://github.com/PHPMailer/PHPMailer)而不是mailto - 這樣您可以將數據保存到數據庫,然後發送郵件。 –

+1

除了打開「收件人:」行中的目標地址外,您無法依賴用戶的郵件代理。 – Pointy

+0

嗨Jay,我知道我可以做到這一點,這不是我想要做的。不管怎麼說,還是要謝謝你。 – Rudy

回答

-1

從我的理解你想這兩個行動發生在提交時,問題是,在表單中使用MAILTO行動是在客戶端和張貼數據到PHP腳本是在服務器端,你不能有2只需在HTML中執行操作(假設您希望打開郵件並向用戶顯示郵件)。爲了做到這一點,我建議使用JS,將表單的動作保存爲MAILTO,爲表單提交添加一個事件,並且在提交表單之前 - 將打開電子郵件 - 運行AJAX調用以發佈數據。

您也可以使用一個動作並在提交時創建一個具有相同數據但不同動作屬性的「假」新表單並提交。請記住,提交表單到頁面將重新加載頁面。

希望這有助於

+0

謝謝,這確實是要走的路! – Rudy

+0

很高興聽到這個幫助 – Lupin

0

您可以使用JavaScript和Ajax這樣的(用jQuery)做到這一點:

<!DOCTYPE html> 
<html> 
    <head> 
     <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> 
     <script type="text/javascript"> 
     function sendData(){ 
       var request = $.ajax({ 
        url: "yourApp.php", 
        data: $("#myform").serialize(), 
        type: 'POST' 
       }); 

      request.done(function(){ 
        $("#myform").submit(); 
      }); 
     } 
     </script> 
    </head> 
    <body> 
     <form id="myform" action="MAILTO:[email protected]" method="post" enctype="text/plain"> 
      Name:<br> 
      <input type="text" name="name" value="your name"><br> 
      E-mail:<br> 
      <input type="text" name="mail" value="your email"><br> 
      Comment:<br> 
      <input type="text" name="comment" value="your comment" size="50"><br><br> 
      <input type="button" value="Send" onclick="sendData()"> 
     </form> 
    </body> 
</html> 

這樣,您將您的數據發送到您的應用程序,然後通過電子郵件發送

+0

謝謝,這是我一直在尋找。像奇蹟一樣工作! – Rudy

相關問題