Как передать параметр для выбранного значения Combobox и получить значения для параметра из базы данных - PullRequest
0 голосов
/ 21 февраля 2012

Я использую 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 голосов
/ 21 февраля 2012

Вы должны будете назначить его в обратном вызове как конфигурацию 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, так что вы можете использовать методы, указанные здесь , чтобы извлечь из них любые нужные вам значения .

Чтобы ответить на ваш комментарий:

Ext.data.Model имеет метод get. Вы передаете ему имя поля, с которым хотите получить значения. В вашем случае вы упомянули где-то, что /genres.php возвращает два значения, если данные возвращаются как одна запись с двумя разными столбцами, например:

Заголовок столбца: | значение1 | значение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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...