0

Web アプリケーションで検索ボックスを作成しようとしていますが、ajax post を使用してサーバーにリクエストを送信しました。私の質問は:

ループ配列値を PHP から JavaScript に送信することはできますか? サーバーからすべての結果を取得したい。

クライアント側: Ajax POST リクエスト

<script type="text/javascript">
$(document).ready( function() {
   $.ajax({
       type: "POST",
       url: "searchPlaces.php",
       data: { searchInput: form.searchTxtId.value },
       success: function (result)
       {
            // Get the search result
       }
   });
});
</script>

サーバー側 (ajax から投稿を取得し、クエリを作成した後):

while ($result = mysql_fetch_assoc ($query))
{
   $resultName = $result['name'];
   $resultAddress = $result['address'];
}
4

2 に答える 2

0
$results = array();
while ($result = mysql_fetch_assoc ($query)) {
   $results[] = $result;
}
echo json_encode(array('results' => $results));

コールバックでは、クエリの列名を属性として含むオブジェクトをsuccess反復処理できます。result.results

success: function(result) {
    $.each(results, function(i, row) {
        console.log(row.name, row.address);
    })
}

応答タイプの不必要な推測を避けるために、引数dataType: 'json'で使用することもお勧めします。$.ajax({...});

クライアントに転送するよりも多くの列が SQL 結果セットにある場合は、ループにカスタム配列を追加できます。

$results[] = array('name' => $row['name'], 'address' => $row['address']);
于 2012-08-30T23:21:12.843 に答える
0

はい、json文字列を返すことができます:

$.ajax({
       type: "POST",
       dataType: 'json', // return type is json ;
       url: "searchPlaces.php",
       data: { searchInput: form.searchTxtId.value },
       success: function (result)
       {
            $.each($result,function(index, value){
                 // use params
            } 
       }
   });

そしてあなたのPHP側ではjson_encode()を使用します

于 2012-08-30T23:21:46.843 に答える