0

基本上,我使用来自本地 PHP 文件的 JSON 响应在 div 中附加数据,目前它只返回一个变量,我使用的代码如下所示:

    $.ajax({
        url: "functions/ajax.php",
        data: "func=auto",
        type: "GET",
        dataType: "json",
        success: function(data){
            $.each(data.search, function (i, v) {
                    $div = $('.bs-docs-example');
                    $div.append('+ v +');
            });
        },
        error: function (jqXHR, textStatus, errorThrown){
            console.log('Error ' + jqXHR);
        }
    });

返回 JSON 的代码当前是

while($row = mysql_fetch_assoc($res)) {
     $search[] = $row['number'];
}
echo json_encode($search);

我想做的是这样的

while($row = mysql_fetch_assoc($res)) {
     $search[] = $row['number'];
     $search[] = $row['name'];
}
echo json_encode($search);

但是,如果我要执行以下操作,我将如何访问两者number,并且name因为在successjQuery 上它正在使用它进行解析,$.each(data.search, function (i, v) {这意味着原始文件$search[] = $row['number']现在存储在里面v

我会做类似的事情v['name'] v['number']还是完全错误?

4

1 回答 1

2

您需要将关联数组传递给 json_encode:

$search['number'] = $row['number'];
$search['name'] = $row['name'];
json_encode($search);

或者,如果会有多行结果,则作为关联数组的数组:

while($row = mysql_fetch_assoc($res)) {
    $search[] = $row;
}

然后按名称访问 JavaScript 中的值:

var name = v['name'];

或者

var name = v[0]['name']

如果您使用多行结果。

于 2013-03-13T20:56:50.577 回答