将循环数组值从PHP传递到JavaScript& JQuery的

时间:2012-08-30 23:18:54

标签: php jquery

我正在尝试在我的网络应用程序中创建一个搜索框,并使用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>

SERVER SIDE(从ajax检索帖子并进行查询后):

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

2 个答案:

答案 0 :(得分: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']);

答案 1 :(得分: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()