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 автоматически отображались ошибки валидации. |
|
пример кода из компанета формы для ее 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); } //... вы можете задавать таких параметров сколько угодно |
Часовой пояс GMT +3, время: 15:32. |