我在周末之前问了这个问题,尽管遵循了这个建议但仍然陷入困境。这次我将发布所有相关代码,希望有人能帮助我深究这一点。
重要说明:当我使用商店的数据:[{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' }]";
?>
已经坚持了一段时间,所以任何帮助都非常感激!
答案 0 :(得分:3)
它;不足以回显一个看起来像你的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);
?>
答案 1 :(得分:0)
您需要提供“success:true”属性,并将您的数据放入JSON响应中的root属性中。
然后,您应该将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'
}
},
});
答案 2 :(得分:0)
这解决了这个问题
store.proxy.url = 'loader.php?user=' + var_here;
store.load();