Javascript 通过电子邮件发送Div';内容

Javascript 通过电子邮件发送Div';内容,javascript,email,html,Javascript,Email,Html,我有一个div,其中的内容由JavaScript生成。我想知道是否可以通过电子邮件发送div的内容?也可以在JavaScript中使用,还是必须在PHP中使用?您不能在浏览器中直接从JavaScript发送电子邮件。您需要将信息发送到服务器端(例如PHP)文件 您可以使用表单执行此操作,但需要一个表单字段 如果它是div,则应该使用JavaScript。您可以发送请求(使用AJAX),或者,如果信息简短且不敏感,则可以导航到执行电子邮件发送的PHP页面,并将信息添加到URL字符串中 下面是一个非

我有一个div,其中的内容由JavaScript生成。我想知道是否可以通过电子邮件发送div的内容?也可以在JavaScript中使用,还是必须在PHP中使用?

您不能在浏览器中直接从JavaScript发送电子邮件。您需要将信息发送到服务器端(例如PHP)文件

您可以使用
表单
执行此操作,但需要一个表单字段

如果它是
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


$\u GET['data']是上面的JavaScript发送的内容


我没有使用JavaScript将div内容放入变量theData

创建一个带有单个文本区域的隐藏表单,将表单方法设置为POST,操作为“mailto:;subject:”,然后提交它。表单的内容,即文本区域中DIV的内容将是作为电子邮件发送的正文的一部分,机器上的默认电子邮件客户端将被打开以实际发送邮件。

这必须在PHP中完成,因为JavaScript无法发送电子邮件

使用JavaScript可以做的是-抓取DIV内容并发送到PHP脚本,PHP脚本将发送电子邮件

如果你有这样的东西:

<form action="your_php_script.php" method="POST">
<textarea name="body"></textarea>
<input type="submit" value="Send" />
</form>
在PHP脚本中,您可以通过以下方式获取值:

$body = $_POST['body'];

将Div的内容传递回服务器。邮件必须发送到服务器端;在你的例子中,用PHP实现这一点。我还没有听说过,但我希望看到它能在现场工作!它仍然会在计算机上打开电子邮件客户端,需要用户的操作来提交电子邮件。并且它应该像链接到“mailto:”的超链接一样打开默认的用户电子邮件软件。如果您想在没有用户的情况下进行发送,那么您可以选择PHP(如果我们从PHP和JS中选择的话)。DIV当前已经在表单中了。如果我这样做,如果我在表单中放入表单,它会同时发送两个表单吗?是的,您需要服务器端程序的帮助才能这样做。有没有办法将php放入javascript中,例如:function emailForm(){var divContent=document.divID.value;}我不知道该怎么做。PHP代码将在页面加载时运行(在任何JavaScript执行之前)。如果您想要发送的内容已经可用,那就太好了——这里不需要JavaScript。如果用户可以更改它,您需要上面的代码。是的,它将被用户更改。这是一个很大的帮助,非常感谢。需要澄清的是,关于$\u GET请求中的body参数的一个问题是['data']DIV的名称?谢谢,这非常有用。我唯一的问题是如何告诉PHP JavaScript抓住了什么?在PHP中,我推荐使用PHPMailer而不是默认的mail()功能。使用jQuery,您可以使用$('#yourDivID').text()获取div内容,并通过$.ajax将其发送到PHP脚本
$('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;
});
$body = $_POST['body'];