2012-10-03 105 views
1

我有一個div,其內容是由JavaScript生成的。我想知道是否可以發送電子郵件的內容的div?也有可能在JavaScript中或必須在PHP中完成?通過電子郵件發送Div的內容

+1

將Div的內容傳遞迴服務器。郵件必須發送到服務器端;在你的情況在PHP中實現這一點。 – Hazaart

回答

1

您無法通過瀏覽器中的JavaScript直接發送電子郵件。您需要將信息發送到服務器端(例如PHP)文件。

您可以使用form來做到這一點,但您需要一個表單域。

如果是div,應該使用JavaScript。您可以發送請求(使用AJAX),或者,如果信息簡短且不敏感,則可以導航到執行電子郵件發送的PHP頁面並將信息添加到URL字符串。

這是一個非常快速的代碼模型。在現實中,你應該過濾輸入並編寫乾淨的代碼和什麼。

使用Javascript:

window.location.href= "http://www.myDomain.com/email.php?data=" + theData ; 

其中http://www.myDomain.com/email.php是php文件和海圖的URL是包含div的內容的變量。

PHP

<?php 
    mail("[email protected]", "Content of div", $_GET['data']); // arguments are: to, subject, body 
?> 

$ _GET [ '數據']是由JavaScript上述發送的內容。

我沒有包括的JavaScript到div內容進入可變海圖

+0

有沒有把php放在一個javascript中,例如: function emailForm(){ var divContent = document.divID.value; <?php email code here $ divContent?> } 我很困惑如何去做這件事。 –

+0

PHP代碼將在頁面加載時運行(在執行任何JavaScript之前)。如果您想要發送的內容已經可用,那就太棒了 - 您在這裏不需要JavaScript。如果用戶可以更改它,則需要上面的代碼。 – ColBeseder

+0

是的,它會被用戶更改。這非常有幫助,非常感謝。爲了澄清,$ _GET請求中關於body參數的問題是['data'] DIV的名稱? –

1

創建一個隱藏的表單與單個文本區域,將表單方法設置爲POST和行動「的mailto:;主題:」然後提交它。表格的內容(即文本區域中的DIV的內容)將作爲電子郵件發出的主體的一部分,機器上的默認電子郵件客戶端將被打開以實際發送郵件。

+0

我還沒有聽說過,但希望看到工作生活! –

+0

它仍然會打開機器上的電子郵件客戶端,並要求用戶採取措施提交電子郵件。 – Vikdor

+0

它應該作爲超鏈接鏈接到「mailto:」打開默認的用戶電子郵件軟件。如果你想發送沒有用戶,只有PHP是你的選擇(如果我們選擇PHP和JS)。 –

1

這必須在PHP中完成,因爲JavaScript沒有發送電子郵件的功能。

你可以用JavaScript做什麼 - 抓取DIV內容併發送到將發送電子郵件的PHP腳本。

如果你有這樣的事情:

<form action="your_php_script.php" method="POST"> 
<textarea name="body"></textarea> 
<input type="submit" value="Send" /> 
</form> 

然後,它會沒有AJAX工作,將您重定向到your_php_script.php傳遞textarea的價值。

但是,如果你想通過AJAX發送,也可以簡單地做過這樣的並加上一些JS代碼:

$('form').submit(function() { 
    var body = $('input[name="body"]').val(); 
     $.ajax({ 
     type: 'POST', 
     data: 'body='+body, 
     success: function() { 
      alert('Message was sent'); 
     }, 
     error: function(error) { 
      alert('Error occured: ',error); 
     } 
     }); 
    return false; 
}); 

而且你的PHP腳本中,你搶值與此:

$body = $_POST['body']; 
+0

謝謝,這非常有幫助。我唯一的問題是我如何告訴PHP什麼JavaScript已經抓住?你如何通過PHP發郵件? –

+0

在PHP中,我推薦PHPMailer的默認郵件()功能。使用jQuery,您可以使用$('#yourDivID')text()將div內容獲取並通過$ .ajax將其發送到您的PHP腳本 –