Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ExtJs форма и данные из сервера на ней

48K
15 февраля 2010 года
moroz11
20 / / 25.01.2010
Подскажите,как отобразить данные из сервера на форме.Не получается никак.Они все в КОНСОЛИ видны,т.е.пришли.Но как мне их на форме показать.В гриде знаю,а на форме не получается.Спасибо.
Код:
var loginForm = new Ext.FormPanel({    // форма для отчета

   frame: true,
   id:'db-grid',
   disabled: true,
   labelAlign: 'top',
   bodyStyle:'padding:5px 5px 0',
   width: 850,
   items: [{
        layout:'column',
        items:[{   //2
            columnWidth:.4,
            layout: 'form',
            items: [{  //3
                xtype:'textfield',
                style: 'margin-bottom: (5px,30px,20px,10px)',
                fieldLabel: 'Вид ',
                name: 'dk',
                anchor:'95%'
            }]  //3
        },{
            columnWidth:.3,
            layout: 'form',
            items: [{  //4
                xtype:'textfield',
                fieldLabel: 'поле1',
                name: 'cdplt',
                anchor:'95%'
            }]  //4
        },{
            columnWidth:.3,
            layout: 'form',
            items: [{  //4
                xtype:'textfield',
                fieldLabel: 'поле2',
                name: 'cdplt1',
                anchor:'95%'
            }]  //4
        }  
        ]  //2
    }]
     ,buttons: [{
             text: 'Загрузить',
             handler: function(){
                 dataStoreReports.load();
                // loginForm.getForm().load({url:'fr.php', waitMsg:'Загрузка...'});
      }
     }
     ,{
             text: 'Закрыть',
             handler: function(){
             loginWindow.hide();
      }
      }]
     ,keys: [{
             key: 27  
            ,fn: function(){
             loginWindow.hide();
             }
     }]
});

/*
 *  Создаем окно, в которое помещаем форму
 */

 
var loginWindow = new Ext.Window({
            frame:true,
            title:'Отчет - Итоги платежей по видам на дату',
            width:900,
            closable: false,
            resizable: true,
            collapsible: true,      // Можно схлопывать/расхлопывать окно
            minimizable: true,      // Можно минимизировать окно
            maximizable:true,       // Можно максимизировать окно
            items: loginForm
});
            loginForm.getForm().load({url:'data_NLF.php', waitMsg:'Загрузка...'});


            loginWindow.show();  
 };
});
48K
15 февраля 2010 года
pastush0k
11 / / 18.05.2009
попробуй создать объект значений с сервера типа

var values = {
dk : value1,
cdplt: value2,
cdplt1: value3
...
и т.д.
};

потом клади это в форму
loginForm.getForm().setValues(values);
48K
16 февраля 2010 года
moroz11
20 / / 25.01.2010
Извините,ничего так и не получилось.Где мне вставить VAR... и в таком виде не получается.Данные из сервера пришли.Но никак не могу в форме их показать.Я отправил кусок скрипта,куда мне добавить ?
48K
16 февраля 2010 года
moroz11
20 / / 25.01.2010
Может у Вас есть кусок примера с отображением данных на форме,что из сервера пришли,сбросьте.Я буду благодарен.В примерах документации я нашел только заполнение и отправка на сервер данных.
48K
16 февраля 2010 года
moroz11
20 / / 25.01.2010
hp]
var dataStoreReports = new Ext.data.Store({ // для отчета
proxy: dataProxyParts
,reader: new Ext.data.JsonReader (
{
root: 'results'
,id: 'prKey'
},
[
,{name: 'DK' ,
,{name: 'CDPLT' , type:'int' }
,{name: 'CDPLT1', type:'int' }
.................
[/PHЯ еще раз скажу,что все данные из сервера пришли,но как их в форму засунуть и показать содержимое заголовков?
48K
16 февраля 2010 года
pastush0k
11 / / 18.05.2009
непонятно, как и куда загружаются данные
через
loginForm.getForm().load({url:'data_NLF.php', waitMsg:'Загрузка...'});
или через
dataStoreReports.load(); ?

для меня было бы проще в обработчике кнопки "Загрузить"
писать что-то такое:

1.получаем данные с сервера в каком-то формате
2. перекладыавем данные в специальный объект у которого поля называются так же как у формы
var values = {
dk : value1,
cdplt: value2,
cdplt1: value3
...
и т.д.
};
3.загружаем этот объект в форму
loginForm.getForm().setValues(values);


PS: чтобы блокировать поля от ввода лучше писать у них в свойствах readOnly :true,
а не делать disabled для всей формы
48K
16 февраля 2010 года
moroz11
20 / / 25.01.2010
Отправлябю Вам код
Код:
Ext.onReady(function() {
    Ext.QuickTips.init();
    Ext.form.Field.prototype.msgTarget = 'side';

    var dataRecordReports = new Ext.data.Record.create([  
       {name: prKey}
      ,{name: 'DK'    }  
      ,{name: 'CDPLT' }  
      ,{name: 'CDPLT1'}
    ]);
       
    var dataReaderReports = new Ext.data.JsonReader({  
      totalProperty: 'total'
      ,root: 'results'
      ,id: prKey
    },  
      dataRecordReports  
    );

    var dataProxyParts = new Ext.data.HttpProxy({  
      url: 'data_NLF.php',  
      method: 'POST'  
    });  
   
   var dataStoreReports  = new Ext.data.Store({   // для отчета
      proxy: dataProxyParts  
     ,reader: new Ext.data.JsonReader (
                {
                    root: 'results'
                   ,id:   'prKey'
                },
                [
                   ,{name: 'DK'    , type:'int'   } //отображение содержимого колонок в гриде
                   ,{name: 'CDPLT' , type:'int'   }
                   ,{name: 'CDPLT1', type:'int'   }
                ]
      )
     ,baseParams:{task: "report"}
     ,sortInfo: {field: "DK", direction: "ASC"}
    });

            newCarForm.render(document.body);

 var textdk = new Ext.form.TextArea({
        fieldLabel : 'Вид платежа',
        name       : 'DK'
 });
 var textcdplt = new Ext.form.TextArea({
        fieldLabel : 'за сутки',
        name       : 'CDPLT'
 });
 var textcdplt1 = new Ext.form.TextArea({
        fieldLabel : 'с начала месяца',
        name       : 'CDPT1'
});
 function getFrm1()  
 {  
/*
 *  Создаем форму для входа
 */

var loginForm = new Ext.FormPanel({    // форма для отчета
   url: 'data_NLF.php',
   frame: true,
   id:'db-grid',
   disabled: true,
   labelAlign: 'top',
   bodyStyle:'padding:5px 5px 0',
   width: 850,
   items: [{
        layout:'column',
        items:[{  
            columnWidth:.4,
            layout: 'form',
            items: [  
                textdk
           ]  
            ,items:[textdk]
        },{
            columnWidth:.3,
            layout: 'form',
            items: [textcdplt] 
        },{
            columnWidth:.3,
            layout: 'form',
            items:textcdplt1
        }  
        ]  
    }]
     ,buttons: [{
             text: 'Загрузить',
             handler: function(){
                 loginForm.getForm().load({url:'data_NLF.php', waitMsg:'Загрузка...'});
                 loginForm.getForm().setValues(textdk,textcdplt,textcdplt1);
      }
     }
     ,{
             text: 'Закрыть',
             handler: function(){
             loginWindow.hide();
      }
      }]
     ,keys: [{
             key: 27  
            ,fn: function(){
             loginWindow.hide();
             }
     }]    
});

/*
 *  Создаем окно, в которое помещаем форму
 */

 
var loginWindow = new Ext.Window({
            frame:true,
            title:'Отчет - Итоги платежей по видам на дату',
            width:900,
            closable: false,
            resizable: true,
            collapsible: true,      // Можно схлопывать/расхлопывать окно
            minimizable: true,      // Можно минимизировать окно
            maximizable:true,       // Можно максимизировать окно
            items: [loginForm]
});
            loginWindow.show();  
 };
});

Не могу понять,почему пустая форма.Спасибо за помощь.
48K
16 февраля 2010 года
pastush0k
11 / / 18.05.2009
http://examples.extjs.eu/?ex=formloadsubmit
48K
17 февраля 2010 года
moroz11
20 / / 25.01.2010
Спасибо за ссылку,но я там ,к сожалению,ничего не нашел нового.В Firebug все данные приходят из сервера,но не отображаются.
48K
17 февраля 2010 года
moroz11
20 / / 25.01.2010
А такой вопрос:можно ли на форме отобразить все данные из сервера,не одну запись,а много записей.?
48K
17 февраля 2010 года
pastush0k
11 / / 18.05.2009
если я правильно понял задачу, то вам нужна не форма а грид

из кода нельзя понять почему не работает, потому что нету ответа сервера
я сам не использовал конструкцию .getForm().load...
почему вы не хотите сделать как я предлагаю? - полжить данные с сервера в объект потом
loginForm.getForm().setValues(values);
48K
17 февраля 2010 года
moroz11
20 / / 25.01.2010
грид меня не устраивает.
loginForm.getForm().setValues(textdk,textcdplt,textcdplt1); -не помог тоже.
Как мне объяснили-из сервера на форме можно тольео 1 запись отобразить,а у меня их 880.Я задал вопрос-можно ли на форме их все отобразить,не в гриде?
Єтот отчет работает в php -файле.Не подскажете,как мне в свою форму на extjs подключить этот php-файл,который все уже делает.?
48K
17 февраля 2010 года
pastush0k
11 / / 18.05.2009
Цитата: moroz11

loginForm.getForm().setValues(textdk,textcdplt,textcdplt1); -не помог тоже.


что значит не помог? выдает ошибку? какую?
вы правильно используете функцию setValues ?http://www.extjs.com/deploy/dev/docs/?class=Ext.form.BasicForm

Цитата: moroz11

Как мне объяснили-из сервера на форме можно тольео 1 запись отобразить,а у меня их 880.Я задал вопрос-можно ли на форме их все отобразить,не в гриде?


-можно все
но я не понимаю, что должно получится - если форма, где 880 записей и 880 одинаковых заголовков, то это уродство
или опишите, что должно получиться

Цитата: moroz11

Єтот отчет работает в php -файле.Не подскажете,как мне в свою форму на extjs подключить этот php-файл,который все уже делает.?


не понимаю и не подскажу)

48K
17 февраля 2010 года
moroz11
20 / / 25.01.2010
ЗАГОЛОВОК ОДИН И ПОД КАЖДІМ ИЗ ЗАГОЛОВКОВ (У МЕНЯ ИХ 3) ИДУТ СВЕРХУ ВНИЗ ДАННЫЕ.Ошибку не выдает,но и пусто на форме.
48K
17 февраля 2010 года
moroz11
20 / / 25.01.2010
А вообще мне нужен отчет.В гриде он пройдет.Мне надо делать проверку и в зависимости от этого печатать разные столбцы.Запрос сложный.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог