Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > Как передать значения из формы ExtJS с комбобоксам


Автор: evilelf 28.3.2010, 16:19
Создал форму, в ней 5 комбобоксов (тут только кусок кода), которые принимают по два параметра: id => name.Проблема в том, что при передаче результатов в скрипт пхп туда отсылаются именно имена, а не их айдишники.Поидее, за это должны отвечать параметры displayField:'company_name' (что показывать в поле выбора) и valueField: 'company_id' (что слать в скрипт).Они у меня прописаны, отладчики оперы и фф не ругаются, но...в скрипт всё так же отсылается сам текст выбранного итема, а не его айди.Как сей трабл решить? smile

Код
  
        query_form = new Ext.FormPanel({
        bodyStyle:'padding:5px 5px 0',
        labelWidth: 90,
        width: 406,
        baseParams: {user_id: user_id},
        defaultType: 'textfield',
        items: [new Ext.form.ComboBox({
                fieldLabel: 'Застройщик',
                name: 'company_id',
                store: companies_store,
                forceSelection:true,
                //hideTrigger: true,
                minChars: 3,
                typeAhead:true,
                mode: 'local',
                triggerAction: 'all',
                width: 300,
                displayField:'company_name',
                valueField: 'company_id',
                emptyText:'Выберите застройщика',
                renderTo: document.body}
            }),    new Ext.form.ComboBox({
                fieldLabel: 'Выставка',
                name: 'exhib_id',
                store: exhibs_store,
                forceSelection:true,
                //hideTrigger: true,
                minChars: 3,
                typeAhead:true,
                mode: 'local',
                triggerAction: 'all',
                width: 300,
                displayField:'exhib_name',
                valueField: 'exhib_id',
                emptyText:'Выберите выставку',
                renderTo: document.body}
            })],
                                                                                       
                buttons: [{text: 'Clear', handler: function(){query_form.getForm().reset()}},
                  {text: 'Save', handler: function(){query_form.getForm().submit({
        url:'test.php',
        method: 'POST',
    success: function(form, action) {Ext.Msg.alert('Success', action.result.msg);},
    failure: function(form, action) {if(action.failureType == Ext.form.Action.CONNECT_FAILURE){ Ext.Msg.alert('Ошибка!', 'Невозможно соединиться с сервером');}}});}}]});
                query_form.render('query_form');
    }});


Этот код формирует инфу, которая будет отображаться.Данные поступают, проверял как в самом пхп, так в экстовом скрипте, так что тут проблем быть не должно...

Код
companies_store = new Ext.data.JsonStore({
    url: 'json_data.php?do=companies_list',
    fields: ['company_id', 'company_name'],
    autoLoad: true
    });
    
exhibs_store = new Ext.data.JsonStore({
    url: 'json_data.php?do=exhibs_list',
    fields: ['exhib_id', 'exhib_name'],
    autoLoad: true
    });

Автор: evilelf 28.3.2010, 17:00
Трабла http://www.extjs.com/forum/showthread.php?t=95505 на форуме экста.Блин, как меня уже достали их мутные доки на техническом английском без примеров %)

Автор: Nord001 14.9.2010, 11:23
Попал в такую же ситуацию...

Огромное спасибо за ссылку - помогло smile
А то уже думал вручную AJAX делать и посылать...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)