【发布时间】:2011-06-18 06:42:40
【问题描述】:
我想我在这里遗漏了一些东西:
使用 AjAX 从数据库中获取一些数据并以 JSON 格式发回 $jsondata = 数组();
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”不是一个对象 - 如果不是它是什么?让我烦恼的是,我什至无法像这样访问它:
document.write(categoriesObject.Categories[0].category);
那我做错了什么?
【问题讨论】:
-
你需要把字符串解析成一个对象。使用有问题的 eval() 或使用 JSON 解析器。见这里:json.org/js.html 旁注,像 jQuery 这样的框架内置了这个
标签: javascript ajax json object