如何为Combobox的选定值传递参数并从数据库中获取参数的值

时间:2012-02-21 04:39:51

标签: extjs

我正在使用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'     
        });

1 个答案:

答案 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'

您可以将两个返回的数据值分配给回调函数中的变量,例如您将变量命名为firstValuesecondValue

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');