Ext.define('User', {
extend: 'Ext.data.Model',
fields: [
{name: 'DeviceID', type: 'string'},
{name: 'VehicleNo', type: 'string'}
]
});
var store1 = new Ext.data.JsonStore({
// store configs
model: 'User',
storeId: 'myStore',
proxy: {
type: 'ajax',
url: 'combobox.php',
id:'1', //show only the group ID is 1,this id are flexible,not necessary is 1
fields: ['DeviceID','VehicleNo']
}
});
xtype: 'combobox',
labelWidth: 50,
labelAlign: 'right',
fieldLabel: 'Vehicle',
name: 'state1',
width :180,
store: store1,
valueField: 'DeviceID',
displayField: 'VehicleNo',
typeAhead: true,
queryMode: 'local',
emptyText: 'Select a Vehicle...'
<?php
mysql_connect("localhost", "root", "") or die("Could not connect");
mysql_select_db("db_gps") or die("Could not select database");
$parent_id = $_GET['id'];
$query = "SELECT DeviceID as id, VehicleNo as text FROM Tbl_device WHERE GroupID='".$parent_id."' ORDER BY text ASC";
$rs = mysql_query($query);
$arr = array();
while($obj = mysql_fetch_object($rs)) {
$arr[] = $obj;
}
echo json_encode($arr);
?>
delimiter $$
CREATE TABLE `tbl_device` (
`MainID` int(11) NOT NULL AUTO_INCREMENT,
`DeviceID` varchar(11) NOT NULL,
`VehicleNo` varchar(45) NOT NULL,
`GroupID` varchar(45) NOT NULL,
`AutoPic` bit(1) NOT NULL DEFAULT b'0',
PRIMARY KEY (`MainID`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1$$
1)我无法显示组合框数据?我的代码有问题吗?请帮助,谢谢。在我的代码中我试图传递id的参数,你可以从我的代码中看到我传递id:1到combobox.php,这个传递值是灵活的,不需要只有1 2)这个代码数据模型是否正确?使用DeviceID和VehicleNo字段
答案 0 :(得分:1)
我认为您只需要显式调用Store的加载函数,以便通过配置的代理将数据加载到Store中:
store1.load();
除此之外,您可能希望通过查询检查返回到php
块的数据。同时使用firebug或类似的东西检查返回给客户端的json
。
希望这有帮助。
修改强>:
或者,就像bmoeskau所说,在商店配置中包含autoLoad: true