2017-05-03 19 views
-2

私は現在、JQueryの呼び出しでGoogle Maps APIからデータを取得し、PHPで処理し、結果をマップに表示するプロジェクトに取り組んでいます。私は現在、API呼び出しの要素を配列に取得して配列を返すことができますが、JavaScriptの特定の配列に再度アクセスする方法がわかりません。参考のために、最初のサブアレイは検索された場所の経度と緯度であり、残りのサブアレイは検索された場所の周りの目的地の経度、緯度と名前です。私はこれらの要素にアクセスする方法を知っている人がいれば、PHPからよりアクセスしやすい方法でそれらを返す方法が分かっているのだろうかと思っていました。JavaScriptで配列の要素にアクセスする(PHPから返された配列)

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)はこれです:私のjavascriptの呼び出しがありますが、私はいくつかの異なるアレイ内の別の変数にアクセスしようとしています見ることができるように

<?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

タイムスタンプからわかるように、私はこの質問に対する回答をかなり早く見つけました。私はちょうどこの方法を使用していたvar name = info[1]["name"];のようなコードを使ってアクセスしましたが、私は構文エラーがあったと思います。

関連する問題