Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   location и post (https://javascript.ru/forum/extjs/13493-location-i-post.html)

DenQ 30.11.2010 20:18

location и post
 
Здравствуйте товарищи программисты.
Столкнулся с такой проблемой. У меня есть формочка для авторизации, данные из нее отправляются на сервер методом POST. А мне нужно чтобы как только данные отправились, страничка обновилась и тогда пользователь будет авторизован и многие опции ему будет дозволенны(ну в общем как обычно :) ). Сам механизм авторизации уже реализован и давно используется(по средством кнопок), а тут нужно сделать по нажатию на enter.
И вроде как работает, но данные не передаются...
Подскажите в чем может быть причина. Ниже привожу листинг.
listeners: {
                   specialkey: function (a, e) {
                        if(e.getKey() == e.ENTER) {
                            a.ownerCt.getForm().submit();
                            if (Ext.isChrome == true) {
                                //
                            } else {
                                //window.location.href = '';
                                location.reload();
                            }
                        }
                    }
                }


ЗЫ. вариантов перепробовал много. Если сам локейшен убрать, и вручную перезагрузить страницу то все Ок. Но это же не гуд...

Kolyaj 30.11.2010 21:06

Цитата:

Сообщение от DenQ
нужно чтобы как только данные отправились, страничка обновилась

Это называется обычная html-форма, без всяких ajax-ов. Зачем вы данные ajax-ом тогда отправляете, если вам страницу перезагружать надо?

DenQ 30.11.2010 21:14

Цитата:

Сообщение от Kolyaj (Сообщение 81613)
Это называется обычная html-форма, без всяких ajax-ов. Зачем вы данные ajax-ом тогда отправляете, если вам страницу перезагружать надо?

Вы меня конечно извините, но это уже другой вопрос. Нужно вот и все. Лучше по теме, что нибудь подскажите, буду благодарен.

underW 30.11.2010 21:20

дык, извините, в чем проблема, в том что страницу надо перегружать или что данные не отправляются?

DenQ 30.11.2010 21:31

underW, проблема в том, что если данные передаются, то страница не перезагружается и наоборот, если страница перезагружается, то данные не передаются...

underW 30.11.2010 21:36

давай еще раз уточним: у тебя есть какая то формочка, после ее заполнения, где то на последнем текстовом поле ты жмакаешь Enter: после нажатия, ты хочешь, что бы данные из формы отправились на сервер и страница перегрузилась, правильно?

DenQ 30.11.2010 21:48

Цитата:

Сообщение от underW (Сообщение 81620)
давай еще раз уточним: у тебя есть какая то формочка, после ее заполнения, где то на последнем текстовом поле ты жмакаешь Enter: после нажатия, ты хочешь, что бы данные из формы отправились на сервер и страница перегрузилась, правильно?

Ну да...

Вообще у меня появилась другая идея. Подскажите лучше как перерисовать содержимое панели(Ext.Panel)?

underW 30.11.2010 22:22

да работает все:

Ext.onReady(function(){

    var simple = new Ext.FormPanel({
        		url:'save-form.php',
        		frame:true,
        		width: 350,
              	items: [{
              		xtype:'textfield',
                	fieldLabel: 'test',
                	name: 'test',
                 	listeners: {
                			specialkey: 
                				function(field, e){
                       				if (e.getKey() == e.ENTER) {
                        				field.ownerCt.getForm().submit({
    										failure: 
    											function(form, action) {/*do something if all wrong:(*/},
                        					success: 
    											function(form, action) {window.location.href = ''; /*I so happy :)*/}
    									})
                        			}
                				}
            		}
                
            	}]});

    simple.render(document.body);
    
})

DenQ 30.11.2010 22:27

underW, спасибо, подставил обработчик ответа сервера который я использую для кнопок. Все заработало как надо... Странно как я сам не додумался... Видимо опыта еще мало.


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