2016-09-03 4 views
-2

데이터베이스에 저장된 모든 마커를 표시하고 싶습니다. 아약스를 사용하여 데이터베이스의 모든 마커의 위도와 경도를 검색하고 map.a에서 마커를 표시하는 데 사용합니다. 아약스를 반복하는 방법은 무엇입니까?Ajax 루프하는 방법

$.ajax({ 
    url: 'php_action/map/fetchmarker.php', 
    dataType: 'json', 
    success:function(response) 
    { 
    var plate = response[1]; 
    map.addMarker({ 
     lat: response[2], 
     lng: response[3], 
     title: plate 

     }); 
    } 
    }); 

fetchmarker.php

 <?php 
    $sql = "SELECT t_id,b.b_platenum,t_lat,t_long from tbltrackbus as a inner join tblbusdesc as b on a.t_bid=b.b_id"; 
    $result = $connect->query($sql); 

if($result->num_rows > 0) { 
$row = $result->fetch_array(); 
} // if num_rows 

echo json_encode($row); 
?> 
+0

가 배열 인 경우, $ .each' – Shyju

답변

1
if($result->num_rows > 0) { 
    $row = $result->fetch_array(); 
} 

echo json_encode($row); 

상기만이 출력 첫번째 결과, 에러 던지고가 출력 아무것도 것이다 결과가 존재하지 않는 경우.

요청한 루프를 수행하려면 먼저 루프 할 항목이 있어야합니다.

배열을 만들고 모든 결과를 그 안에 넣어야합니다. 그런 다음 을 출력하면 어레이입니다.

$output = []; 
while ($row = $result->fetch_array()) { 
    $output[] = $row; 
} 
echo json_encode($output); 

response은 배열의 배열이 될 것이다 일단 당신이, 당신이 돌이 할 수있다.

success: function(response) { 
    for (var i = 0; i < response.length; i++) { 
     var row = response[i]; 
      var plate = row[1]; 
      map.addMarker({ 
       lat: row[2], 
       lng: row[3], 
       title: plate 

      }); 
    } 
} 
+0

내 문제를 해결하는 감사'사용할 수 있습니다 .. –

관련 문제