是否有可能将JS变量连接到PHP邮件方法中,如果是这样,怎么样?

时间:2014-10-01 01:02:46

标签: javascript php variables

我正在尝试使用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]。

我将不胜感激任何帮助。 :)

5 个答案:

答案 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实现价值并做任何你想做的事。