我已经制作/获得了一个可以获得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自动发送并将位置放入电子邮件中 - 这甚至可能吗?有谁知道怎么样?
非常感谢!
答案 0 :(得分:2)
您正在混合PHP和JavaScript。
PHP在服务器上执行,然后将结果发送到客户端并呈现,然后运行JavaScript。您的代码在语法上不正确(因为PHP字符串周围有<p>
标记),但即使是这样,只要有人请求网页,它就会发送一封电子邮件,无论他们是否看到它,或者他们是否启用了JavaScript或地理定位。
无论出于何种原因,您想要的是两个单独的页面 - HTML + JavaScript,它将尝试获取用户的位置,以及PHP脚本。一旦获得它,JavaScript代码就需要使用该位置向PHP脚本发送一个AJAX请求。