我目前正在开发一个项目,该项目在JQuery调用中从Google Maps API中提取数据,在PHP中处理它,然后最终在地图中显示结果。我现在能够将API调用中的元素转换为数组并将数组发回,但我不确定如何再次访问JavaScript中的特定数组。作为参考,第一个子阵列是搜索位置的经度和纬度,其余子阵列是搜索位置周围的目的地的经度,纬度和名称。我想知道你们中是否有人知道如何访问这些元素(或者可能以不同的方式以更易于访问的方式从PHP发回它们)。我的javascript调用是:
function getPlace() {
var address1 = $("#address1").val();
var city1 = $("#city1").val();
var state1 = $("#state1").val();
var type = $("#placesList").val();
var lat; var long;
$.ajax({
url: 'findPlace.php',
type: 'GET',
data: {address1: address1, city1: city1, state1: state1, type: type},
success: function(stuff) {
var info = JSON.parse(stuff);
lat = info.lat;
long = info[0].long;
var name = info.first();
},
error: function(e) {
console.log(e.message);
}
});
}
我的PHP代码(findPlace.php)是这样的:
<?php
$type = $_GET["type"];
$address1 = $_GET["address1"];
$city1 = $_GET["city1"];
$state1 = $_GET["state1"];
$key = "AIzaSyBubKVVsy-AjrJoS57GWMskC8vkr3xsj0g";
// Find the location
$niceStreet = str_replace(" ", "+", $address1);
$niceCity = str_replace(" ","+", $city1);
$niceState = str_replace(" ","+", $state1);
$address = $niceStreet.",+".$niceCity.",+".$niceState;
$jsonURL = "https://maps.googleapis.com/maps/api/geocode/json?address=".$address."&key=".$key;
$json = file_get_contents($jsonURL);
$decodedJSON = json_decode($json, true);
$lat = $decodedJSON["results"][0]["geometry"]["location"]["lat"];
$long = $decodedJSON["results"][0]["geometry"]["location"]["lng"];
// Find the places
$placeURL = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=".$lat.",".$long."&radius=1000&type=".$type."&key=".$key;
$placeJSON = file_get_contents($placeURL);
$decodedPlace = json_decode($placeJSON, true);
$place = $decodedPlace["results"][0]["name"];
$size = count($decodedPlace["results"]);
$results[0]["lat"] = $lat;
$results[0]["long"] = $long;
for($i = 1; $i < 6; $i++){
$c = $i - 1;
$results[$i]["lat"] = $decodedPlace["results"][$c]["geometry"]["location"]["lat"];
$results[$i]["long"] = $decodedPlace["results"][$c]["geometry"]["location"]["lng"];
$results[$i]["name"] = $decodedPlace["results"][$c]["name"];
}
echo json_encode($results);
正如您所看到的,我正在尝试访问几个不同数组中的不同变量,但它们都返回PHP返回的整个数组,而不是值本身。谢谢你的帮助!
答案 0 :(得分:0)
从时间戳中可以看出,我很快找到了这个问题的答案。我刚刚使用var name = info[1]["name"];
之类的代码访问过它,之前我使用过这种方法,但我想我只是语法错误。