我想我在这里遗漏了一些东西:
使用AjAX,我从数据库中获取了一些数据,并以JSON格式将其发送回去。$ jsondata = array();
while ($Row = mysql_fetch_array($params)) { $jsondata[]= array('cat_id'=>$Row["cat_id"], 'category'=>$Row["category"], 'category_desc'=>$Row["category_desc"], 'cat_bgd_col'=>$Row["cat_bgd_col"]); }; echo("{\"Categories\": ".json_encode($jsondata)."};");
到目前为止,我认为没有问题。
在回教士方面,我将以上内容接收回
ajaxRequest.responseText
如果我这样做
var categoriesObject = ajaxRequest.responseText; alert(categoriesObject);
我看到了我希望看到的内容,即警报中的整个阵列。
一切出错的地方就是尝试访问响应。我得到的错误是“ categoriesObject”不是对象- 如果不是,它是什么?我的bugginh是,我什至不能像这样访问它:
document.write(categoriesObject.Categories[0].category);
那我在做什么错呢?
echo json_encode(array('Categories' => $jsondata));
要不就
echo json_encode($jsondata);
我看不出要补充的理由Categories。
Categories
您必须使用JSON.parse(在大多数浏览器中可用,但也可以作为脚本使用)在客户端解码JSON :
JSON.parse
var data = JSON.parse(ajaxRequest.responseText);
如果要非常正确,请添加
header('Content-type: application/json');
到您的PHP脚本。