将Javascript结果与PHP集成的最佳方法
嗯 基本上,我使用的是谷歌地图API——它是Javascript 我的网站大部分使用PHP 我的意图是调用GoogleMapsAPI,以获得各种已经地理编码的经纬度点之间的距离。然后我想向我的用户显示它们 举个例子 我有(php): 我还有一个来自位置数据库的mysql_查询结果 我也是这样做的将Javascript结果与PHP集成的最佳方法,php,javascript,google-maps,Php,Javascript,Google Maps,嗯 基本上,我使用的是谷歌地图API——它是Javascript 我的网站大部分使用PHP 我的意图是调用GoogleMapsAPI,以获得各种已经地理编码的经纬度点之间的距离。然后我想向我的用户显示它们 举个例子 我有(php): 我还有一个来自位置数据库的mysql_查询结果 我也是这样做的 while($result=mysql_fetch_array($results)){ //OUTPUT THE GOOGLE MAPS JAVASCRIPT JARGON WHICH WILL FI
while($result=mysql_fetch_array($results)){
//OUTPUT THE GOOGLE MAPS JAVASCRIPT JARGON WHICH WILL FIND THE DISTANCE
//BETWEEN MY HOME AND THE DB LOCATIONS
}
在示例代码中,通过将指定div的内部html设置为某个查询的响应值(这就是我的JS知识变得模糊的地方),将该值简单地输出到div
理想情况下,我希望将该值输入到php变量中
是否还有其他方法:
$var=response from js thing;
我现在所做的基本上是使用php,我已经生成了正确数量的div,名为'response1','response2',等等,JS会填充这些div。。但这似乎不是最合乎逻辑的做事方式
希望这是有道理的。
谢谢我建议大家看看谷歌地图API 是的!前几天我做了这个: 在PHP文件中执行以下操作(直接取自我的代码):
//我们将把所有需要的信息放在这里,作为一个JS全局变量。
//如果您需要更多的控制,只需通过JQuery从执行以下操作的PHP脚本获取它。
变量编号=
警报(数字);
//预期产出:[5,2,10,15]
警报(数字[2]);
//预期产出:10
干杯 从JavaScript向PHP发送答案需要AJAX: 如果您可以使用JQuery,这几乎是一个标准,那么它非常简单。这是我为PHPPro课程编写的课程之一的逐字记录: receiveNumbers.php
<?php
if (isset($_GET['sentNums']))
{
$sentNumbers = filter_input(INPUT_GET, 'sentNums', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
// Convert to array.
$numbers = split(', ', $sentNumbers);
// Echo out.
echo json_encode($numbers).
}
图形排序| PHPExperts.pro
var myNumbers='5,10,22,11';
var接收数;
jQuery.getJSON('receiveNumbers.php?sentNums='+myNumbers,函数(jsonReceived)
{
receivedNumbers=jQuery.parseJSON(jsonReceived);
警报(接收号码);//预计为[5,10,22,11]
});
谢谢-但似乎无关紧要。我用API编写了这个脚本,它可以正常工作。我的问题是如何将JS结果传递给PHP。在这种情况下,您可以编写一些AJAX代码将结果传递回服务器,或者使用URL中的一些参数重定向到另一个(可能是同一个)页面。也许您正在尝试这样做:启动PHP处理,处理JS,将结果从JS返回到PHP,完成PHP处理,呈现页面。这只能像:进行PHP处理,将页面发送给用户,处理JS,使用AJAX将结果返回给服务器,更改页面以反映AJAX调用的结果。第一种方法是不可能的……我想我没有抓住重点。我直接使用谷歌地图API。没有其他框架等,所以我调用API,它返回各种值。我正试图将JS返回的这个值转换成php变量,我相信是另一种方式。谢谢
<?php
$numbers = array(5, 2, 10, 15);
/* Model and stuff here */
?>
<html>
<head>
<script type="text/javascript">
// We're going to put all the info we need here, as a JS global variable.
// If you need even more control, simply fetch it via JQuery from a PHP script that does the following.
var numbers = <?php echo json_encode($numbers); ?>
alert(numbers);
// Expected output: [5,2,10,15]
alert(numbers[2]);
// Expected output: 10
</script>
</head>
</html>
<?php
if (isset($_GET['sentNums']))
{
$sentNumbers = filter_input(INPUT_GET, 'sentNums', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
// Convert to array.
$numbers = split(', ', $sentNumbers);
// Echo out.
echo json_encode($numbers).
}
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Graph Sort | PHPExperts.pro</title>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/jquery.json-2.2.min.js"></script>
<script type="text/javascript">
var myNumbers = '5, 10, 22, 11';
var receivedNumbers;
<?php
// Send data from JavaScript -> PHP.
if (!isset($_GET['myData']))
{
?>
jQuery.getJSON('receiveNumbers.php?sentNums=' + myNumbers, function(jsonReceived)
{
receivedNumbers = jQuery.parseJSON(jsonReceived);
alert(receivedNumbers); // Expected [5,10,22,11]
});
<?php
}
?>
</script>
</head>
</html>