我有一个组合框,我想从php服务器获取数据
这是我的Index.html代码 http://jsfiddle.net/UQcgA/
这是我的data.php文件。
但是当我点击组合然后没有显示:(。我怎么能解决这个问题
<?php
// function to create json
function GetCategories() {
$categories = "{'rows':[";
$categories = "{'id':'1', 'name':'Category 1'},";
$categories .= "{'id':'2', 'name':'Category 2'},";
$categories .= "{'id':'3', 'name':'Category 3'}";
$categories .= "]}";
return $categories;
}
echo GetCategories(); // sent to client
?>
答案 0 :(得分:0)
主要问题在于您的商店定义。您正在使用ExtJS 3的定义。这是在ExtJS 4.1中定义存储的正确方法:
var values = new Ext.data.Store({
fields: [
{name: 'id', type: 'integer'},
{name: 'name', type: 'string'}
],
proxy: new Ext.data.HttpProxy({
url: 'data.php',
reader: {
type: 'json',
root: 'rows'
}
}),
autoLoad: true
});
你的json data
也有问题(你在第二行也错过了一段时间)。这将有效:
// function to create json
function GetCategories() {
$categories = '{"rows": [';
$categories .= '{"id": "1", "name": "Category 1"},';
$categories .= '{"id": "2", "name": "Category 2"},';
$categories .= '{"id": "3", "name": "Category 3"}';
$categories .= "]}";
return $categories;
}
echo GetCategories(); // sent to client
?>
注意:使用json_encode
构建JSON字符串始终是最佳做法,请参阅this answer。