我正在尝试使用PHP邮件功能发送电子邮件,但所需内容存储在JS变量中,我会尝试编写我的情况以便您更好地理解。
<script type="txt/js">
var content = "This is what I need to send via email";
if({Irrelevant validation check})
{
alert("Form submitted! Redirecting... <?PHP mail('admin@admin.com', 'subject', [XXX]);?>");
}
</script>
我需要存储在内容变量中的文本代替上面的[XXX]。
我将不胜感激任何帮助。 :)
答案 0 :(得分:2)
使用$.post()
:
$.post("sendEmail.php", { contentData: content }, function(response) {
console.log(response);
//Form submitted! ...Redirecting...
});
<强> sendEmail.php 强>
$content = $_POST['contentData'];
$to = 'someemail@domain.com';
$subject = 'The content';
$message = 'Content'.$content;
$headers = 'From: youremail@domain.com' . "\r\n";
if (mail($to, $subject, $message, $headers)){
echo "Your email was sent!";
}else{
echo "Email did not send";
}
答案 1 :(得分:0)
正如其他人提到的那样,使用AJAX是您的最佳选择。您可以使用AJAX将信息传递给php文件,如下所示:
$.ajax({
type : "POST",
url : url,
data : content,
success : alert('success'),
error: alert('error')
});
要获得更好的数据处理,您可以定义Formdata并将内容var保存在该数据中。
var data = new FormData();
data.append("content", content);
然后您可以发布此数据:
$.ajax({
type : "POST",
url : url,
data : data,
success : alert('success'),
error: alert('error')
});
答案 2 :(得分:0)
不,你不能使用纯javascript做任何影响PHP 代码的东西。 PHP在服务器端运行。 Javascript在客户端运行。但是,如果您将php设置为服务,即在PHP中设置页面X以接受邮件信息,然后使用javascript发布到页面X,则页面X将有效地发送带有javascript给出的信息的邮件。但是javascript不能直接影响PHP代码。
首先呈现PHP代码,然后是HTML,然后是Javascript。这是网络堆栈。
AJAX可用于在客户端和服务器之间来回交谈,就像其他答案所提到的那样,但问题是它是否可能以及如何使用JS通过PHP发送邮件。
答案 3 :(得分:0)
我只是使用了window.open(url.php?var = var);使用Javascript的方法,并通过GET参数传递变量,然后&#34; url.php&#34;页面通过$ _GET [&#39; var&#39;];
获取答案 4 :(得分:-1)
在这种情况下使用AJAX会更好。传递&#34; var内容&#34;通过AJAX实现价值并做任何你想做的事。