如何传递呼叫,例如:
http://localhost/conn.php?geotable=INFR&geomfield=the_geom&srid=&fields=¶meters=&orderby=&sort=&limit=&offset=
进入javascript变量?此调用的结果是字符串(geoJSON格式行)。
请帮忙,我不知道该怎么办了!
答案 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=¶meters=&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=¶meters=&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调用
希望这可以帮助你。