将Javascript结果与PHP集成的最佳方法

时间:2010-08-31 18:20:47

标签: php javascript google-maps

确定。

基本上我使用Google Maps API - 它是Javascript。

我的网站大部分都是在PHP上运行。

我的目的是调用Google Maps API来获取各种已经经过地理编码的经度和纬度点之间的距离。然后我想将它们显示给我的用户。

一个例子。

我(在php中):

$home=array(latitude,longitude); 

我的位置数据库也有一个mysql_query结果。

我这样做

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。

无论如何都在做:

$var=response from js thing;

我目前所做的基本上是使用php我已经生成了正确数量的div,其名称为'response1','response2'等JS填充...但这似乎不是最合乎逻辑的做法的东西。

希望这是有道理的。 感谢

3 个答案:

答案 0 :(得分:1)

要从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).
}

的index.php

<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>

答案 1 :(得分:0)

我建议您查看Google Maps API的this part

答案 2 :(得分:0)

是的!我前几天就这样做了:

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>

干杯!