将php调用传递给javascript变量?

时间:2013-06-13 21:31:02

标签: php javascript variables geojson

如何传递呼叫,例如:

http://localhost/conn.php?geotable=INFR&geomfield=the_geom&srid=&fields=&parameters=&orderby=&sort=&limit=&offset=

进入javascript变量?此调用的结果是字符串(geoJSON格式行)。

请帮忙,我不知道该怎么办了!

2 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点。以下是一些选项:

(注意:为了演示,这些示例假设您的PHP脚本返回GeoJSON Spec Example Code。)

  • AJAX:为了进行AJAX调用,我建议使用像jQuery这样的库,因为这意味着您不必担心不同浏览器版本的所有特性。如果使用jQuery,则需要使用的函数是$.getJSON() (see docs for more examples)。您的电话可能如下所示:

    var path = http://localhost/conn.php?geotable=INFR&geomfield=the_geom&srid=&fields=&parameters=&orderby=&sort=&limit=&offset=
    
    var result;
    $.getJSON(path, function(data) {
        result = data;
    });
    

    这将从服务器接收GeoJSON数据并将其复制到result变量。

  • 如果您可以修改服务器端脚本,那么最简单的方法可能就是JSONP。修改服务器上的PHP代码,使其获取callback参数,并返回包含在具有该名称的函数内的JSON数据。例如,如果设置callback=process,服务器将返回以下内容:

    process(
        { "type": "FeatureCollection",
          "features": [
            { "type": "Feature",
              "geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
              "properties": {"prop0": "value0"}
              },
        .....
        }
    );
    

    (请注意,这与上面链接的示例完全相同,只是前面有process(,后面是);

    您需要获取数据的所有代码如下:

    <script>
        var result;
        function process(received) {
            result = data;
        }
    </script>
    <script src="http://localhost/conn.php?callback=process&geotable=INFR&geomfield=the_geom&srid=&fields=&parameters=&orderby=&sort=&limit=&offset="></script>
    

答案 1 :(得分:0)

如果你想在javascript中使用你的GET变量,你可以做这样的事情。

<script>
<?php 
echo 'var phpData = ' . json_encode($_GET);
?>
</script>

确保此代码位于您开始使用javascript的部分之前。 您可以在javascript中调用您的变量,如下所示:

phpData.var

例如,你的get?geotable = INFR的这一部分将在javascript中使用phpData.geotable调用

希望这可以帮助你。