我正在使用ext js。 我有一个组合框,我选择一个值,并使用此值作为参数来获取其他值(两个值)。现在我希望将它添加到变量中,以便我可以在除组合框之外的其他位置使用它。我怎么能这样做?
var txtEP=new Ext.form.ComboBox({
renderTo: "txtEP",
fieldLabel: 'End Point',
triggerAction: "all",
forceSelection: true,
mode:'local',
autoScroll: true,
allowBlank: false,
autoShow: true,
typeAhead:true,
store: genres,
valueField:'pincode',
displayField:'pincode',
emptyText:'Select a Start Point',
selectOnFocus:true,
listeners : {
'select' : function(){
var selVal = this.getValue();
//endpt(Global Variable) is the variable where i am trying to get this value.
endpt=store.load({url:'./genres1.php', params: {pincode: selVal}});
alert(endpt);
}
}
//valueField: 'X,Y'
});
答案 0 :(得分:0)
您必须在回调中将其作为store.load
的配置进行分配,这是因为当您立即分配它时,商店不包含任何数据。像这样:
var txtEP = new Ext.form.ComboBox({
renderTo: "txtEP",
fieldLabel: 'End Point',
triggerAction: "all",
forceSelection: true,
mode:'local',
autoScroll: true,
allowBlank: false,
autoShow: true,
typeAhead:true,
store: genres,
valueField:'pincode',
displayField:'pincode',
emptyText:'Select a Start Point',
selectOnFocus:true,
listeners : {
'select' : function(){
var selVal = this.getValue();
store.load({
url:'./genres1.php',
params: {pincode: selVal},
callback: function(records) {
endpt = records; // here is where it is assigned
}
});
}
}
});
还要意识到,“endpt”现在将包含一个Ext.data.Model对象数组,因此您可以使用给定here的方法从中提取所需的值。
回答您的评论:
Ext.data.Model有一个get
方法。您传递要获取值的字段的名称。在你的情况下,你提到/genres.php
返回两个值的地方,如果数据作为一个记录返回,有两个不同的列,如下所示:
列标题:| value1 |值2
第1行:| 'data1'| 'DATA2'
您可以将两个返回的数据值分配给回调函数中的变量,例如您将变量命名为firstValue
和secondValue
:
firstValue = endpt[0].get('value1');
secondValue = endpt[0].get('value2');
相反,如果您的/genres.php
将数据作为两个不同的行返回,只有一个列标题,如下所示:
列标题:值
第1行:'data1'
第2行:'data2'
您可以将数据分配给这样的变量:
firstValue = endpt[0].get('value');
secondValue = endpt[1].get('value');