Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提交后,如何在同一个PHP文件中将JS变量传递给以下PHP?_Php_Javascript_Google Maps - Fatal编程技术网

提交后,如何在同一个PHP文件中将JS变量传递给以下PHP?

提交后,如何在同一个PHP文件中将JS变量传递给以下PHP?,php,javascript,google-maps,Php,Javascript,Google Maps,用户在文本字段中填写地址并点击提交按钮后,地址将通过javascript发送到GoogleMaps,然后google maps将接收回地址的坐标。 然后,我想将坐标传递回下面的PHP代码,以便将它们保存到DB中。 那么,如果这是一个PHP文件下的代码,那么如何实现呢 另外,更清楚的是,所有这些都是在一个处理提交的PHP函数下完成的 <script type="text/javascript" ... var lat = results[0].geometry.location.latitu

用户在文本字段中填写地址并点击提交按钮后,地址将通过javascript发送到GoogleMaps,然后google maps将接收回地址的坐标。 然后,我想将坐标传递回下面的PHP代码,以便将它们保存到DB中。 那么,如果这是一个PHP文件下的代码,那么如何实现呢

另外,更清楚的是,所有这些都是在一个处理提交的PHP函数下完成的

<script type="text/javascript"
...
var lat = results[0].geometry.location.latitude;
var lng = results[0].geometry.location.longitude;
...
}
</script>
<?php
$latitude = ??? ;
$longitude = ??? ;
?>

如果您在单击提交时在页面中获得lat/long,那么在表单提交给您之前,您只需将结果存储在隐藏的输入中即可

在您从API调用接收到它们后,使用js更新它们的值

$("lat").value = results[0].geometry.location.latitude;

然后允许表单正常提交并从查询字符串/post数据中获取“
lat
”。

不可能,PHP在客户端接收文件之前执行(之后用户浏览器执行JavaScript)

使用AJAX可以很容易地实现您想要的。让JavaScript调用一个外部php文件,该文件只需获取它接收到的变量并将其插入数据库。例如,在ajax请求中,将url作为外部php文件的地址,并将变量附加到uri查询中:

"storedata.php?latitude="+lat+"&longitude="+lng
然后在
storedata.php
中:

$latitude = $_GET['latitude'];
$longitude = $_GET['longitude'];

// process them here and insert into your database .etc

也不会那样工作,请记住,PHP是在网页在浏览器中显示之前执行的,JS是在浏览器在浏览器中完成渲染后执行的[当然这会简化它]Hannes+1。你不能这样做,但是有一些工作要做。@Hannes-我所说的PHP代码是处理已经提交的表单,而不是创建表单。它现在不能运行javascript从谷歌地图发送和获取信息吗?Alex,谢谢,但我不确定我们是否同步。提交表格后,我将获得lat/lng。处理提交的PHP正在启动与Google的API“对话”的JS。我想得到API的回复并将其存储在DB中。哦,那么你在客户端js中的表单提交事件中没有得到值吗?我得到了它们(至少,我想我得到了。我还没有验证过),我只是不知道如何将它们从js传递回PHP代码,以便我可以将它们存储在DB中。如果你从客户端获取它们,您可以将它们附加到表单中吗?-您可以在onsubmit事件中执行此操作。实际上,我使用的是WordPress PHP插件。它通过PHP获取提交的字段。现在,我添加了一个Javascript,将地址发送到Google的API。这样做之后,我还能将结果传递回PHP吗?可能是我的错,我的问题不够清楚。我关注的PHP代码是处理提交表单的代码。它从地址字段获取地址,然后运行javascript将地址发送到Google的API。现在我想把API的回复传递回PHP代码,用于数据库存储。这样你就有了表单,用户输入数据,PHP将输入的数据传递给javascript,javascript将google地图数据加载到一些javascript变量中,现在你想把返回的变量保存到数据库中吗?为什么不使用AJAX将返回的变量传递给PHP脚本并保存到数据库中呢?这是可能的。我找不到一个简单的例子。