2016-07-15 2 views
0

PHP에서 JSON 배열을 만들어야합니다. 다음과 같이 보입니다. 배열은 PHP While 루프로 만들어야합니다.올바른 형식의 인덱싱 된 JSON 만들기

[{ 
    "latitude":"124", 
    "longitude":"", 
    "altitude":"87654", 
    "title":"test3", 
    "description":"This is a test 3", 
    "urlidle":"0", 
    "urlselected":"0" 
}, { 
    "latitude":"1ert", 
    "longitude":"67", 
    "altitude":"9", 
    "title":"tes3456", 
    "description":"This is a test 123", 
    "urlidle":"www.demo.blah", 
    "urlselected":"0demo.blah" 
}] 

구현 한 PHP 루프는 다음과 같습니다.

$poi=array(); 
while ($row = $output->fetch_array(MYSQLI_ASSOC)) { 

    $poi[$x]['latitude'] = $row['lat']; 
    $poi[$x]['longitude'] = $row['long']; 
    $poi[$x]['type'] = $row['type']; 
    $poi[$x]['title'] = $row['title']; 
    $poi[$x]['description'] = $row['desc']; 
    $poi[$x]['urlidel'] = $row['url1']; 
    $poi[$x]['urlselected'] = $row['url2']; 
    $x++; 
} 

그리고 어떤이 방법

var jqxhr = $.getJSON(serverUrl, function(data) { 

    loadPoisFromJsonData(data); 

} 

와 루프에 대한 JS 읽을 수 있습니다하지만 그것은 SERVERURL는 JSON 메아리 PHP 파일입니다

작업있을 것 같지 않습니다.

다음과 같이 JSON을 읽어야합니다. 데이터 어레이

$poi=array(); 
$x = 0; 
while ($row = $output->fetch_array(MYSQLI_ASSOC)) { 

    $poi[$x]['latitude'] = $row['lat']; 
    $poi[$x]['longitude'] = $row['long']; 
    $poi[$x]['type'] = $row['type']; 
    $poi[$x]['title'] = $row['title']; 
    $poi[$x]['description'] = $row['desc']; 
    $poi[$x]['urlidel'] = $row['url1']; 
    $poi[$x]['urlselected'] = $row['url2']; 
    $x++; 
} 
print_r($poi); 
echo json_encode($poi); 

에 추가 한 후

function loadPoisFromJsonDataFn(poiData) { 

    for (var i = 0; i < poiData.length; i++) { 
     var singlePoi = { 
      "id": poiData[i].id, 
      "latitude": parseFloat(poiData[i].latitude), 
      "longitude": parseFloat(poiData[i].longitude), 
      "altitude": parseFloat(poiData[i].altitude), 
      "title": poiData[currentPlaceNr].name, 
      "description": poiData[i].description, 
      "urlidle": poiData[i].urlidle, 
      "urlselected": poiData[i].urlselected 
     }; 

    } 
} 

답변

1

귀하는 JS에서 다시 루프를 필요로하지 않는 json_encode()를 사용한다. 그 결과 (poiData는) 이미 이미로 json_encode를 사용하셨습니까 JSON

var jqxhr = $.getJSON(serverUrl, function(data) { 

    console.log(data); 
    //See it in Firebug, it's already a JSON. 

    alert(JSON.stringify(data)); 
    //If you want to see it as string 

} 
+0

()입니다. 제 질문은 JS –

+0

안에 poiData [i] .id와 같은 인덱스를 사용하여 액세스 할 수 있는지 여부입니다. '에코'했습니까? 이미했다면'return'을 사용해보십시오. – rmondesilva

0
$poi=array(); 
while ($row = $output->fetch_array(MYSQLI_ASSOC)) { 
$poi1 = array(); 
    $poi1['latitude'] = $row['lat']; 
    $poi1['longitude'] = $row['long']; 
    $poi1['type'] = $row['type']; 
    $poi1['title'] = $row['title']; 
    $poi1['description'] = $row['desc']; 
    $poi1['urlidel'] = $row['url1']; 
    $poi1['urlselected'] = $row['url2']; 
    $x++; 
$poi = $poi1 



} 

echo json_encode($poi); 

    enter code here