【问题标题】:Best way to Integrate a Javascript result with PHP将 Javascript 结果与 PHP 集成的最佳方法
【发布时间】:2011-04-06 10:24:40
【问题描述】:

好的。

基本上我使用的是 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 设置为某个查询的响应值,将值简单地输出到 div(这是我的 JS 知识变得模糊的地方)。

理想情况下,我想将此值放入 php var。

有没有办法:

$var=response from js thing;

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

希望这是有道理的。 谢谢

【问题讨论】:

    标签: php javascript google-maps


    【解决方案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>
    

    【讨论】:

      【解决方案2】:

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

      在您的 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>
      

      干杯!

      【讨论】:

      • 我想我错过了这里的重点。我直接使用 Google Maps API。没有其他框架等。所以我调用了 API,它返回了各种值。我试图将 JS 返回的这个值转换为 php var。我相信反过来。谢谢
      【解决方案3】:

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

      【讨论】:

      • 谢谢 - 但似乎无关紧要。我已经使用 API 编写了脚本,并且可以正常工作。我的问题是将 JS 结果传递给 PHP。
      • 在这种情况下,您可以编写一些 AJAX 代码将结果传回服务器,或者重定向到另一个(可能相同)页面,并在 URL 中添加一些参数。
      • 也许您正在尝试执行以下操作:启动 PHP 处理,处理 JS,将结果从 JS 返回到 PHP,完成 PHP 处理,渲染页面。只有这样才有可能:做 PHP 处理,向用户发送页面,处理 JS,使用 AJAX 将结果返回到服务器,更改页面以反映 AJAX 调用的结果。

        这是不可能的第一种方式...
      猜你喜欢
      • 2012-03-15
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 2010-10-24
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      相关资源
      最近更新 更多