我正在尝试通过ajax从PHP脚本中提取json数据,但它无法正常工作。
while ($row = mysql_fetch_array($result)) {
$response = array(
'hello' => $row['name']
);
$responses[] = $response;
}
echo json_encode($responses);
然后我使用这个JavaScript
$('.clickme').click(function() {
$.ajax({
url: 'http://example.com/testFixGet.php?department=1',
dataType: 'json',
data: 'manufacturer=alpine,kicker',
success: function(json) {
alert(json['hello']);
$('.result_new').html(json);
}
});
});
对话框显示:'未定义'
但是,如果我实际上加载了php页面,那么数据将被json解码,它看起来像这样:
[{"hello":"Rand McNally Soft Case for Most 5\" GPS"}]
答案 0 :(得分:0)
您是否设置了内容类型?
header('Content-type: application/json');
顺便说一下
[{"hello":"Rand McNally Soft Case for Most 5\" GPS"}]
它是一个数组,所以它将是
alert(json[0]["hello"]);
循环
var bar = [{"a":"1"},{"a":"2"},{"a":"3"}]
$.each( bar, function(i, jObj){
alert( jObj.a );
});
答案 1 :(得分:0)
您会注意到您的JSON有效内容包含一个包含一个对象元素的数组。尝试
alert(json[0]['hello']);
此外,getJSON()
更简洁
$('.clickme').click(function() {
$.getJSON('http://example.com/testFixGet.php', {
department: 1,
manufacturer: 'alpine,kicker'
}, function(json) {
// loop over results
for (var i = 0; i < json.length; i++) {
var response = json[i];
console.log(response);
}
});
});
答案 2 :(得分:0)
试试这个:
$('.clickme').click(function() {
$.getJSON('testFixGet.php', { manufacturer: "alpine,kicker", department: "1" }, function(json) {
alert(json[0].hello);
$('.result_new').html(json);
} );
}