2012-03-08 8 views
0

私は、AJAXを介してユーザーIDを送信するプログラムと、そのユーザーIDと一致するすべてのレコードのテーブルを検索するPHPプログラムを持っています。問題は、それが1つの行だけを返すことであり、一致するすべての行を返す必要があるということです。これを行う方法に関するアイデア?AJAXでテーブルからすべてのレコードを返します

PHPでのMySQLの声明:

$id=$_POST["id"]; 

$sql = mysql_query("SELECT * FROM crime_map WHERE user_id = '$id'"); 
while($row = mysql_fetch_assoc($sql)) 

$output[]=$row; 

echo json_encode($output); 

JSコード:

function submitform() { 

    var id = document.getElementById('id').value; 
    var datastr = 'id=' + id; 
    alert(datastr); 
    $.ajax({  
     type: "POST", 
     url: 'api.php', 
     data: datastr,  
     dataType: 'json',     
     success: function(data){ 

      var user_id = data[0]; 
      alert(user_id); 
     }         
    })  
} 
+0

var user_id = data [0];ここでは1行を取る。 data []は行の配列です。他の行に到達するために他のインデックスを使用します。 data [1] – Juvanis

+0

このコードは、各行を出力に追加するか、最初の行を置き換えますか? $ output [] = $ row; – Tom

+1

最新のブラウザ(Firebugコンソール、Chrome、さらにはIE9を搭載したFirefox)で 'console.log(data)'を試してみましたか? –

答えて

1
function submitform() { 

    var id = document.getElementById('id').value; 
    var datastr = 'id=' + id; 
    //alert(datastr); 
    $.ajax({  
     type: "POST", 
     url: 'api.php', 
     data: datastr,  
     dataType: 'json',     
     success: function(data){ 

      //var user_id = data[0]; 
      //alert(user_id); 
      if(data.length > 0) 
      { 
       for(i=0; i<data.length; i++) 
       { 
        alert("User: " + data[i].user_id); 
        // here you have the user_id and any other fields from the table e.g. lat/long 
       } 
      } 
     }         
    })  
} 

は、点をプロットする方法については、Googleマップのポリラインの参照を見てください: http://code.google.com/apis/maps/documentation/javascript/reference.html#Polyline

関連する問題