Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.09.2011, 19:16
Новичок на форуме
Отправить личное сообщение для leaf Посмотреть профиль Найти все сообщения от leaf
 
Регистрация: 24.09.2011
Сообщений: 1

ExtJS 4: как проще всего организовать server-side валидацию?
Вопрос по ExtJS 4

везде (здесь например) пишется, мол, ответ от сервера должен быть следующем формате:
{
    success: false,
    errors: {
        clientCode: "Client not found",
        portOfLoading: "This field must not be null"
    }
}


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

И еще вопрос можно ли как-то прямо в конфиге для кнопки указать, что она делает submit своей формы или это тоже руками нужно все писать?

Вобщем, в идеале хотелось бы просто сконфигурировать форму указав url-путь для submit'a и кнопку, которая будет делать этот самый submit, а чтобы на основе полученного ответа, если он success: false автоматически отображались ошибки валидации.
Ответить с цитированием
  #2 (permalink)  
Старый 27.09.2011, 21:53
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

http://docs.sencha.com/ext-js/4-0/#!...-method-submit

По поводу валидации я не совсем понял вопрос.
Ответить с цитированием
  #3 (permalink)  
Старый 30.09.2011, 22:29
Новичок на форуме
Отправить личное сообщение для Bo3gyX Посмотреть профиль Найти все сообщения от Bo3gyX
 
Регистрация: 30.09.2011
Сообщений: 1

пример кода из компанета формы для ее submit на extjs 4

//....
xtype: 'button',
handler: function() {
var form = this.up('form').getForm();
form.submit({
url: 'register.php',
success: function(form, action) {
//...
},
failure: function(form, action) {
//...
}
});


вот мой пример ответа от сервереа на PHP. (в данном примере результат возвращает ошибку)

$response = array(
'success'=>false,
'errors'=>array(
'login'=>'Такой логин уже есть',
'password'=>'Не верно указан пароль',
'confirm_password'=>'Пароли не совпадают',
),
'msg'=>'Ошибка при регистрации!'
);

echo json_encode($response);

ключи success и errors распазнаются exеjs 4 самостоятельно
при success = true будет вызываться функция success
при success = false - failure.
ключ errors должен содержать массив ключ:значение, где ключ -название поля формы , а значение текст ошибки.
ExtJS 4 определит по ним нужные поля и выделит их.

msg - это мой параметр доступ к тоторому можно получить из функции success или errors через пераданный им параметр action. Присер:
//...
failure: function(form, action) {
alert(action.result.msg);
}
//...

вы можете задавать таких параметров сколько угодно

Последний раз редактировалось Bo3gyX, 30.09.2011 в 22:37.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как осуществить валидацию только выбранных полей формы? Tomas jQuery 2 18.02.2011 06:44
Как организовать RichEdit arma Элементы интерфейса 2 18.02.2010 14:57
форма как в ExtJS 2 magistr_bender Общие вопросы Javascript 0 11.09.2008 16:01