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