我有这个PHP代码:
$query = mysql_query("SELECT * FROM table WHERE id=$id");
while($item = mysql_fetch_assoc($query)){
$dataArray['var1'] = $item['var1'];
$dataArray['var2'] = $item['var2'];
$dataArray['var3'] = $item['var3'];
array_push($return_arr,$dataArray);
}
echo json_encode($return_arr);
它位于我的ajax.php
文件
然后我使用jquery通过ajax请求发送id:
$.ajax({
type: "POST",
url: 'ajax.php',
data: 'id='+id,
success: function(data) {
alert(data);
}
});
它提醒我:[{"var1":"somevarhere","var2":"somevarhere2","var3":"somevarhere3"}]
有人可以告诉我,我可以如何访问前。 var3
获取somevarhere3
?
感谢
答案 0 :(得分:4)
根据jQuery.ajax
的文档,根据传递给dataType
的 jQuery.Ajax
选项的值,对其作为第一个参数接收的数据进行解释。
如果您为该参数传递'json'
该怎么办?
像这样:
$.ajax({
type: "POST",
url: 'ajax.php',
data: 'id='+id,
dataType: 'json',
success: function(data) {
alert(data);
}
});
执行此操作时,jQuery.ajax
应将服务器返回的数据解释为JSON。
另外,文档说如果没有指定dataType (引用):
jQuery将尝试根据它推断它 响应的MIME类型
所以,另一个解决方案是从PHP代码(参见The right JSON content type?)返回一些JSON内容类型,如下所示:
header('Content-type: application/json');
在做回声之前。
而且,jQuery.ajax
应该将服务器返回的数据解释为JSON。
答案 1 :(得分:1)
好的,我找到了解决方案。感谢Pascal MARTIN
我有了解析结果的想法,所以我使用了这个:
data = data.substring(1,data.length-1);
data = $.parseJSON(data);
alert(data.var3);
第一行删除[], 第二行将JSON解析为Object, 和第三行访问属性
答案 2 :(得分:0)
应该能够像这样访问它:
data[0].var3
其中0是您要访问的数组中项目的索引。