2016-09-03 21 views
-2

データベースに格納されているすべてのマーカーを表示したいとします。私はajaxを使用して、データベース内のすべてのマーカーの緯度と経度を取得し、map.HowでAjaxをループするマーカーを表示するために使用したいですか?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

ありがとう、それは私の問題を解決しました.. –

関連する問題