Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.09.2014, 20:19
Аспирант
Отправить личное сообщение для treasury Посмотреть профиль Найти все сообщения от treasury
 
Регистрация: 26.08.2014
Сообщений: 49

extjs прошу совета
только начал программировать на extjs прошу поставить на путь истинный, чтобы правильно начать разработку.
Мое приложение имеет форму логина, на вход навесил обработчик, если можно по пунктам верно или нет, правильный подход и т.п. вот сам код:
onButtonClick: function(button, e, eOpts) {
var successGetObj = function(resp, ops) {

    var obj = Ext.decode(resp.responseText);
    console.log(obj);

    var storeObject=Ext.StoreManager.get('CarStore');
    console.log(storeObject);

    for (var i=0; i<obj.items.length; i++){
        storeObject.add({id: obj.items[i].id, nm: obj.items[i].nm});
        
    }
};


var failureGetObj = function(resp, ops) {
    Ext.Msg.alert('Error','Нет доступных объектов', Ext.emptyFn);
};


var values = Ext.getCmp('loginform').getForm().getValues();    // По ID адресуемся к панели

var errorCodes = {
    1: 'Недействительная сессия',
    2: 'Неверное имя сервиса',
   ...

};

var AjaxRequest = function(url, success, failure){
    Ext.Ajax.request({
        method:'GET',
        //contentType:'application/x-www-form-urlencoded',
        dataType:'jsonp',
        url: 'http://localhost:3000/' +url,
        disableCaching: false,
        useDefaultXhrHeader: false,
        success: success,
        failure: failure             });};

var successCallback = function(resp, ops) {

    var obj = Ext.decode(resp.responseText);

    console.log(obj);

    if (!obj.error){

        var now = new Date();
        console.log(now);
        var expiry = new Date(now.getTime() + 600 * 1000);
        console.log(expiry);

        Ext.util.Cookies.set("ssid", ''+obj.ssid+'', expiry);

        var val = Ext.util.Cookies.get("ssid");

        console.log(val);

        // Create new login form window
        var main = Ext.create('widget.main', { //Show main
           
        });

        // Show main
        main.show();
        Ext.getCmp('login').hide();


        AjaxRequest('wialoncollector/items/'+Ext.util.Cookies.get("ssid"), successGetObj, failureGetObj);

    }

    if (obj.error){

        if (!Ext.get('login-error')){
        Ext.get('login').createChild({ // вставка в #ex21B элемента DIV
         tag:'div',             // тег, который нужно вставить
         id: 'login-error', // ID этого тега
         cls:'login-error',      // CSS-класс
         html:'<b>'+errorCodes[obj.error]+'</b>'  // html-содержимое
         });

        }


    }
};

var failureCallback = function(resp, ops) {

    if (!Ext.get('login-error1')){
        Ext.get('login').createChild({ // вставка в #ex21B элемента DIV
         tag:'div',             // тег, который нужно вставить
         id: 'login-error1', // ID этого тега
         cls:'login-error',      // CSS-класс
         html:'<b>Введите пользователя и пароль, проверьте соединение с интернетом</b>'  // html-содержимое
         });

        }

};

AjaxRequest('login/'+values.login+'/'+values.password+'', successCallback, failureCallback);
}
Ответить с цитированием
  #2 (permalink)  
Старый 01.09.2014, 21:06
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

вот примеры веб форм:
http://docs.sencha.com/extjs/4.2.2/e...m/dynamic.html

вот вообще весь список примеров:
http://docs.sencha.com/extjs/4.2.2/#!/example

для отправки данных формы достаточно прописать url адрес
var fsf = Ext.widget({
        xtype: 'form',
        id: 'fieldSetForm',
        collapsible: true,
        url: 'save-form.php',
        frame: true,
...

для отправки данных достаточно написать это:
fsf.getForm().submit({
    url: 'updateConsignment.php', //если урла не указана в форме, то можно указать здесь
    params: { //список дополнительных параметров
        newStatus: 'delivered'
    },
    success: function(form, action) {//функция при успехе
       Ext.Msg.alert('Success', action.result.msg);
    },
    failure: function(form, action) {//функция при провале
        switch (action.failureType) {
            case Ext.form.action.Action.CLIENT_INVALID:
                Ext.Msg.alert('Failure', 'Form fields may not be submitted with invalid values');
                break;
            case Ext.form.action.Action.CONNECT_FAILURE:
                Ext.Msg.alert('Failure', 'Ajax communication failed');
                break;
            case Ext.form.action.Action.SERVER_INVALID:
               Ext.Msg.alert('Failure', action.result.msg);
       }
    }
});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Python-Ajax. Прошу совета pvgdrk AJAX и COMET 11 07.11.2012 17:45
ExtJs - Перевод книги "Lerning ExtJs" MaXyC ExtJS 17 22.06.2012 17:41
Cоздаю сайт прошу совета Геворг Ваши сайты и скрипты 5 25.01.2011 14:51
Подстроить высоту страницы под юзера, прошу совета у гуру batonsu Events/DOM/Window 11 10.11.2010 19:39
Москва, ищу JavaScript программиста отлично знающего ExtJS, от 10 USD / час. maximgb Работа 3 03.08.2010 14:34