Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   form submit ExtJS 4 (https://javascript.ru/forum/extjs/18338-form-submit-extjs-4-a.html)

QuadMan 27.06.2011 08:28

form submit ExtJS 4
 
Здравствуйте!

Недавно начал разбираться с ExtJS, но никак не получается отправить данные из формы скрипту. Подскажите, пожалуйста, что не так или дайте ссылку на рабочий пример js и php.

var form = Ext.widget('form', {
... код инициализации ....
buttons: [{
                    text: 'Cancel',
                    handler: function() {
                        this.up('form').getForm().reset();
                        this.up('window').hide();
                    }
                }, {
                    text: 'Send',
                    name: 'submit',
                    handler: function() {
                        if (this.up('form').getForm().isValid()) {
                            alert('valid');
                            this.up('form').getForm().submit({
                                url: 'users_submit.php',
                                success: function(form, action){
                                    Ext.Msg.alert('Success', 'It worked');
                                },
                                failure: function(form, action){
                                    Ext.Msg.alert('Warning', 'Error');
                                }
                            });
                            this.up('form').getForm().reset();
                            this.up('window').hide();
                        }
                    }
                }]


такое ощущение, что php код вообще не вызывается...

Заранее спасибо!

Black_Prince 11.07.2011 16:57

1. url можно поставить и для самой формы:
var form = Ext.create('Ext.form.Panel', {
frame: true,
url: './users_submit.php',
.................

2. Если уже создана переменная form - то можно написать так:
form.getForm().submit(
вместо:
this.up('form').getForm().submit(

3. Ну и наконец о самой возможной ошибке... в самом файле php. Посмотрите через firebug - отправляется ли запрос, и приходит ли какой то ответ?

возможно что выпадет ошибка javascript'а связанная с json (точно как выглядит ошибка не помню)
PHP должен возвращать например такое:
echo '{success: true, rows:'.json_encode($some_array).'}';

где "success: true" - скажет что скрипт выполнен успешно,
rows:'.json_encode($some_array)." - сами данные.
В принципе достаточно будет отправить только echo '{success: true}';

P.S. Надеюсь что хоть чем то помогу, сам недавно начал разбираться с ext. Пример ajax подгрузки данных можно найти, например, в самой папке ext: ext\examples\tree\reorder.js


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