在JSON / PHP中返回多个变量

时间:2013-03-13 20:50:04

标签: php jquery json

基本上,我正在使用来自本地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);

但是,如果我要执行以下操作,我将如何访问numbername,因为在jQuery的success上使用$.each(data.search, function (i, v) {进行解析,这意味着原始$search[] = $row['number']现已存储在v

我会做v['name'] v['number']这样的事情,还是完全错了?

1 个答案:

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

如果您使用多行结果。