Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   extjs прошу совета (https://javascript.ru/forum/extjs/49876-extjs-proshu-soveta.html)

treasury 01.09.2014 20:19

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

skrudjmakdak 01.09.2014 21:06

вот примеры веб форм:
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);
       }
    }
});


Часовой пояс GMT +3, время: 00:09.