Успех из формы не работает ExtJS v4


Проблема

Работая с заявкой в ExtJS, я попал в странную ситуацию. Мой PHP-бэкенд возвращал правильный ответ, например, такой:

{
  "success": true,
  "id": "<some_id>"
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Для успеха

И…

{
  "success": false,
  "msg": "<error_msg>"
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Для неудачи

Но даже с чем-то подобным, в правильной структуре, мой код не работал. В функции submit из формы, форма для ожидания заявки ставит success и failure слушателей в объект конфигурации из функции, вот так:

form.getForm().submit({
  ...,
  success : function(me, action){
    // code...
  },
  failure : function(me, action){
    // code...             
  }
});
Войти в полноэкранный режим Выйти из полноэкранного режима

Решение

И каков же ответ на этот большой вопрос? Все просто!

Слушатели запросов формы работают именно с форматом ответа. Так, если запрос success, вставьте "success": true в ваш JSON объект ответа. В противном случае, вставьте "success": false, функция распознает, что нужно вызвать то, что передано в конфигурации failure.

Заключение

В формах, подобных этой, просто следуйте этому принципу:

Вызывать из submit() то, что было передано в атрибуте success в объекте конфигурации:

{
  "success": true,
  ...
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Вызвать то, что было передано в атрибуте failure в объекте конфигурации из submit():

{
  "success": false,
  ...
}
Вход в полноэкранный режим Выйти из полноэкранного режима

Оцените статью
Procodings.ru
Добавить комментарий