-2

例如如何传递呼叫:

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

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

请帮忙,我不知道该尝试什么了!

4

2 回答 2

1

有很多方法可以做到这一点。这里有几个选项:

(注意:出于演示目的,这些示例假定您的 PHP 脚本返回GeoJSON 规范示例代码。)

  • AJAX:为了进行 AJAX 调用,我推荐使用jQuery之类的库,因为这意味着您不必担心不同浏览器版本的所有特性。如果你使用 jQuery,你需要使用的函数是$.getJSON()(更多示例请参见文档)。您的电话可能如下所示:

    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>
    
于 2013-06-13T22:02:04.300 回答
0

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

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

确保此代码位于您开始使用 javascript 的部分之前。您可以像这样在javascript中调用您的变量:

phpData.var

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

希望这可以帮助你。

于 2013-06-13T21:47:40.750 回答