2012-01-16 4 views
0

私はphpを使用して、データ配列を返します。コマンドはjson_encode()です。私はこの配列を送った後、他のデータも送っていきたいです。私はjqueryライブラリを使用しています。次のように私のphpコードは次のとおりです。jsonデータの配列を終了し、別の値をエコーする方法はありますか?

<?php  

//// Query 
$sql = "SELECT gtn FROM $table WHERE gid < 10"; 

//// Open connection 
$con = pg_connect("host=12.12.2.2 port=5434 dbname=spatial_data user=postgres password=****"); 
if (!$con){echo 'error connecting'; die; } 

//// Run query 
$query = pg_query($con, $sql); 
$arrayData = array(); // Store results from query in arrays 

//// Parse results 
while($r = pg_fetch_row($query)) { 
    $arrayData[] = $r[0]; 
} 
echo json_encode($arrayData); 

//// Return metadata about calculation 
//echo "$('#messages').html('Result returned for New York')"; 

//// close connection 
pg_close($con); 

?> 

このphpjqueryポストコマンドに応答している:

$.ajax({ 
    type: "POST", 
    url: "/php/array_test_v3.php", 
    data:{vertices: pointlist}, 
    success: function(arrayData){ 
    //console.log(arrayData[0]) 
    for(i=0;i<arrayData.length; i++){ 
     setGeoJson(arrayData[i]); 
    } 
    }, 
    dataType:'json' 
}); 

は、これは空間データベースである、と私は情報を照会するとき、私はまた、いくつかを返すようにしたいですその他の値。たとえば、エリアがニューヨークの場合、データの配列と文字列New Yorkを返したいとします。現時点では、行echo "$('#messages').html('Result returned for New York')";は情報の配列に追加されます。配列から脱出する方法はありますか、またはこの情報を取得するには別のpost関数を持つ必要がありますか?

答えて

2

代わりのecho json_encode($arrayData);、単にメタデータをフェッチしてから実行します。

はJQueryで
echo json_encode(array(
    'data' => $arrayData, 
    'meta' => $metaData 
)); 

そして:

success: function(result){ 
    for(i=0;i<result.data.length; i++){ 
     setGeoJson(result.data[i]); 
    } 
    // do something with result.meta 
    }, 
+0

おかげで@oriこのように、この

$.ajax({ type: "POST", url: "/php/array_test_v3.php", data:{vertices: pointlist}, success: function(arrayData){ $.each(arrayData,function(index,value){ setGeoJson(value.gtn); $('#messages').html(value.someotherkey); }) }, dataType:'json' }); 

を行うことができます作ります!あなたの答えから、完璧に働くいくつかの新しいことを学びました。 – djq

1

は、PHPを使用していると仮定。 は

while($r = pg_fetch_row($query)) { 
    $arrayData[] = array('gtn'=>$r[0],'someotherkey'=>'someothervalue','anotherkey'=>'anothevalue'); 
} 

echo json_encode($arrayData); 

以下、このような配列は、現在のjQueryで、あなたが好きなものを追加したり、行うことができます。..

関連する問題