Ajax数据仍未加载到数据存储中
问题描述:
我在周末之前问过这个问题,尽管遵循了这个建议,但仍然陷入了僵局。这次我会发布所有相关的代码,希望有人能帮助我了解这一点。Ajax数据仍未加载到数据存储中
重要注意事项:当我使用商店的数据[{json data}]参数静态地将数据输入到数据存储区时,数据存储和模型完美地工作。但使用Ajax代理做失败(即使我可以在Chrome中看到的test.php被调用,又呼应了JSON数据(见下面的test.php)
这是我的店:
new Ext.data.Store({
model: "SearchResult",
proxy: {
type: "ajax",
url : "test.php",
extraParams : 'test',
reader: {
type: "json",
}
},
});
我加载它通过处理点击按钮时
这里是在test.php的呼应了:!
<?php
echo "[{stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' }]";
?>
一直停留在这个这么任何帮助非常感谢一会儿
答
它; S不够呼应一个字符串,它看起来像你的JSON ......你应该使用PHP的方法来编码它...你比如这将是
<?php
$data = array(array('stock'=> 'Tommy', 'storePhone'=> 353535, 'year'=> '1984', 'make'=> 'Ferrari', 'trim'=> 'trim', 'miles'=> '12345', 'storename'=> 'branch name'));
echo json_encode($data);
?>
答
您需要提供“success:true”属性,并将数据放入JSON响应的根属性中。
然后,您应该将root属性添加到您的读者配置。
{
"success": true,
"rows": [
{
"stock": "Tommy",
"storePhone": "353535",
"year": "1984",
"make": "Ferrari",
"trim": "trim",
"miles": "12345",
"storename": "branchname"
}
]
}
您的商店:
new Ext.data.Store({
model: "SearchResult",
proxy: {
type: "ajax",
url : "test.php",
extraParams : 'test',
reader: {
type: "json",
root: 'rows'
}
},
});
+0
不是真的,......你并不需要提供一个成功:是的,但这是一个很好的设计,要知道什么时候行动成功了...... – nscrob
答
这解决了问题 store.proxy.url = 'loader.php?user=' + var_here; store.load();
感谢,你解决了我的问题:) –