我有一个div,其内容由JavaScript生成。我想知道是否可以通过电子邮件发送div的内容?它也可以在JavaScript中使用,或者必须在PHP中完成吗?
答案 0 :(得分: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, theData 是包含div内容的变量。
PHP
<?php
mail("me@myDomain.com", "Content of div", $_GET['data']); // arguments are: to, subject, body
?>
$ _ GET ['data']是上面JavaScript发送的内容。
我没有包含JavaScript来将div内容放入变量 theData
答案 1 :(得分:1)
使用单个textarea创建隐藏表单,将表单方法设置为POST,将操作设置为“mailto:; subject:”,然后提交。表格的内容,即文本区域中DIV的内容将作为电子邮件发送的正文的一部分,并且机器上的默认电子邮件客户端将被打开以实际发送邮件。
答案 2 :(得分: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'];