自动发送电子邮件(php)并从JavaScript添加文本

时间:2017-04-28 13:24:12

标签: javascript php email

我已经制作/获得了一个可以获得java脚本位置的代码。 我们的想法是,它会自动通过Javascript向具有该位置的人发送电子邮件。但是,您如何获得电子邮件中的位置,以及如何自动发送?

我的代码是:

<!DOCTYPE html>
<html>
<head>
<title>TestPage</title>
</head>
<body>
<h1>Test</h1>
<p>Your Loaction:
<p id="demo"></p>
<script>
var x = document.getElementById("demo");

function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition, showError);
    } else { 
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}

function showPosition(position) {
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude;
}

function showError(error) {
    switch(error.code) {
        case error.PERMISSION_DENIED:
            x.innerHTML = "User denied the request for Geolocation."
            break;
        case error.POSITION_UNAVAILABLE:
            x.innerHTML = "Location information is unavailable."
            break;
        case error.TIMEOUT:
            x.innerHTML = "The request to get user location timed out."
            break;
        case error.UNKNOWN_ERROR:
            x.innerHTML = "An unknown error occurred."
            break;
    }
}
window.onload = getLocation();
</script>
<?php
$to      = 'example@example.com';
$subject = 'Subject';
$message = 'Your location is' <p id="demo">''</p>;

mail($to, $subject, $message,);
?>
</body>
</html>

所以我希望php自动发送并将位置放入电子邮件中 ​​- 这甚至可能吗?有谁知道怎么样?

非常感谢!

1 个答案:

答案 0 :(得分:2)

您正在混合PHP和JavaScript。

PHP在服务器上执行,然后将结果发送到客户端并呈现,然后运行JavaScript。您的代码在语法上不正确(因为PHP字符串周围有<p>标记),但即使是这样,只要有人请求网页,它就会发送一封电子邮件,无论他们是否看到它,或者他们是否启用了JavaScript或地理定位。

无论出于何种原因,您想要的是两个单独的页面 - HTML + JavaScript,它将尝试获取用户的位置,以及PHP脚本。一旦获得它,JavaScript代码就需要使用该位置向PHP脚本发送一个AJAX请求。