我试图给JS一个php变量。该脚本必须将gps坐标提供给隐藏的表单,该表单以php变量命名,并且在按下单击按钮后,它必须显示该信息。 如果我写,例如“latitude3”到JS脚本它确实有效,但是使用php var它不会。
请帮帮我!:)谢谢!
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Title</title>
</head>
<script>
var x=document.getElementById("log");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else{x.innerHTML="GPS szolgáltatás nem müködik ezen a böngészőn, kérlek értesítsd a rendszergazdát!";}
}
function showPosition(position)
{
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.getElementById(<?php echo $longitudee;?>).value = longitude;
document.getElementById(<?php echo $latitudee;?>).value = latitude;
}
</script>
<form action="" method="post">
<input type="submit" name="ido" value="Click" /></td>
<input type="hidden" name= "longitude" id="longitude3">
<input type= "hidden" name ="latitude" id="latitude3">
</form>
<?php
if(isset($_POST["ido"])) {
$g=3;
$longitudee="longitude$g";
$latitudee="latitude$g";
echo "<script>getLocation();</script>";
$latitude=$_POST["latitude"];
$longitude=$_POST["longitude"];
print_r($_POST);
}
?>
</html>
答案 0 :(得分:1)
在代码的下游,不会声明变量。您可以像这样重新安排代码,它应该具有预期的效果。
您还应该在getElementById参数周围添加引号。
<?php
if(isset($_POST["ido"])) {
$g=3;
$longitudee="longitude$g";
$latitudee="latitude$g";
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Title</title>
</head>
<script>
var x=document.getElementById("log");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else{x.innerHTML="GPS szolgáltatás nem müködik ezen a böngészőn, kérlek értesítsd a rendszergazdát!";}
}
function showPosition(position)
{
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.getElementById("<?php echo $longitudee;?>").value = longitude;
document.getElementById("<?php echo $latitudee;?>").value = latitude;
}
</script>
<form action="" method="post">
<input type="submit" name="ido" value="Click" /></td>
<input type="hidden" name= "longitude" id="longitude3">
<input type= "hidden" name ="latitude" id="latitude3">
</form>
<?php
if(isset($_POST["ido"])){
echo "<script>getLocation();</script>";
$latitude=$_POST["latitude"];
$longitude=$_POST["longitude"];
print_r($_POST);
}
?>
</html>
答案 1 :(得分:0)
<?php
if(isset($_POST["ido"])) {
$g=3;
$longitudee="longitude$g";
$latitudee="latitude$g";
echo "<script>getLocation();</script>";
$latitude=$_POST["latitude"];
$longitude=$_POST["longitude"];
print_r($_POST);
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Title</title>
</head>
<script>
var x=document.getElementById("log");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else{x.innerHTML="GPS szolgáltatás nem müködik ezen a böngészőn, kérlek értesítsd a rendszergazdát!";}
}
function showPosition(position)
{
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.getElementById("<?php echo $longitudee;?>").value = longitude;
document.getElementById("<?php echo $latitudee;?>").value = latitude;
}
</script>
<form action="" method="post">
<input type="submit" name="ido" value="Click" /></td>
<input type="hidden" name= "longitude" id="longitude3">
<input type= "hidden" name ="latitude" id="latitude3">
</form>
</html>
将您的PHP移到顶部,并为getElementById
答案 2 :(得分:0)
对不起我还不能发表评论所以我在这里发布答案:
如果我看得正确,你想获得“导航器”的地理位置并在PHP中使用它吗?
由于“getLocation()”仅在您发布表单后调用javascript,因此您必须将表单发布两次,以便甚至可以填充$ latitude和$ longitude变量。
如果您只想在用户点击“点击”按钮后显示用户当前位置,那么仅限javascript的解决方案就足够了。
由于问题是“如何将PHP变量导入JS”,我假设第一个(尽管你可能意味着“PHP变量的值”)
为了保持输出相同,只需(正如其他人已经提到的那样)确保定义变量。
<?php
$g=3;
$longitudee="longitude$g";
$latitudee="latitude$g";
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Title</title>
</head>
<script>
var x=document.getElementById("log");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else{x.innerHTML="GPS szolgáltatás nem müködik ezen a böngészőn, kérlek értesítsd a rendszergazdát!";}
}
function showPosition(position)
{
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.getElementById("<?php echo $longitudee;?>").value = longitude;
document.getElementById("<?php echo $latitudee;?>").value = latitude;
}
</script>
<form action="" method="post">
<input type="submit" name="ido" value="Click" /></td>
<input type="hidden" name= "longitude" id="longitude3">
<input type= "hidden" name ="latitude" id="latitude3">
</form>
<?php
if(isset($_POST["ido"])) {
echo "<script>getLocation();</script>";
$latitude=$_POST["latitude"];
$longitude=$_POST["longitude"];
print_r($_POST);
}
?>
</html>