0

从数据库查询中,我得到一条返回字段/值的记录并将其放入数组中:

$arr = array();
while ($rowSearchZipCode = mysqli_fetch_array($resultSearchZipCode, MYSQLI_ASSOC)) {
    $arr[] = $rowSearchZipCode;
}

我通过 php 脚本的回显将其发送回 jQuery ajax 调用:

echo print_r($arr);

在 $.ajax 的成功参数中的警告框中显示该数组表明我得到了一个如下所示的多维数组:

Array
(
[0] => Array
    (
        [id] => 55
        [branchName] => SBN - Some Branch Name
        [branchAddress1] => 1234 Elm St.
        [branchAddress2] => Suite 000
        [branchAddressCity] => Anywhere
        [branchAddressState] => CA
        [branchAddressZip] => 55000
        [branchAddressPhone] => 555-555-5555
        [branchAddressFax] => 555-555-4444
    )

)
1

问题 1:我是否在 while 循环中正确构建了数组?

问题 2:在 $.ajax 调用中,如何从数组中获取字段/值对,以便将它们输出到 HTML 标记等?

4

3 回答 3

1

PHP端:

  • 不要忘记发送正确的 JSON 标头:

    header('Content-Type: application/json');
    
  • 并在回显之前使用 json_encode 对数组进行编码:

    echo json_encode($myarray);
    

客户端使用:

$.ajax({
    url: '<url>',
    dataType: "json", //optionnal if you correctly set the header
    success: function(data){
        for (var i in data) {
            console.log(data[i]); //data[i] are JS object
        }
    }
});
于 2013-01-22T15:59:22.273 回答
0
Question 1: Am I building the array correctly in the while loop?

是的

Question 2: In the $.ajax call how do I get the field/value pairs from the array so that I can output them to HTML tags, etc?

当像下面这样进行 AJAX 调用时,您可以在发送数组之前使用json_encode 。

echo json_encode($arr);

使用 jQuery jQuery.parseJSON()对 AJAX 调用成功函数中的数组进行解码。使用首选循环遍历数组。

例如:

$.ajax({
  url: myUrl,
  cache: false,
  dataType: "json",
  success: function(data){
    //use jQuery.parseJSON() & foreach goes here.
  },
  error: function(e, xhr){
    //alert('error');
  }
});

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。阅读更多

于 2013-01-22T15:44:21.157 回答
0

问题 1:我是否在 while 循环中正确构建了数组?

是的

问题 2:在 $.ajax 调用中,如何从数组中获取字段/值对,以便将它们输出到 HTML 标记等?

不要使用 print_r,使用json_encode. JSON 是 JavaScript 的子集,而 JQuery.ajax 将为您提供即用型 JavaScript 对象作为响应。要强制执行此操作,请添加dataType: 'json'到 AJAX 选项并在回显 JSON 之前使用 PHP 发送正确的内容类型标头:

header('Content-type: application/json');
于 2013-01-22T15:45:32.840 回答