基本上,我正在使用来自本地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
,因为在jQuery的success
上使用$.each(data.search, function (i, v) {
进行解析,这意味着原始$search[] = $row['number']
现已存储在v
我会做v['name']
v['number']
这样的事情,还是完全错了?
答案 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']
如果您使用多行结果。