Форум русской поддержки Joomla!® CMS
23.06.2017, 17:45:56 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Как отключить валидацию формы в компоненте?

 (Прочитано 100 раз)
0 Пользователей и 1 Гость смотрят эту тему.
GuDeVic
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 151


« : 02.06.2017, 21:00:46 »

Здравствуйте!
При создании  и редактировании формы в компоненте поля формы проходят валидацию:
1. в шаблоне загружена проверка формы:
Показать текстовый блок
2. в форме указан класс form-validate
Показать текстовый блок
3. в контроллере данные $data из модели: model->validate
Показать текстовый блок
Нужно в проверенной форме поставить что-то вроде подтверждения руководителя, когда все поля формы выводятся не как input, а как value
Показать текстовый блок
но добавляется поле (radio), выбор значения в котором указывает на подтверждение или отказ и кнопка для отправки. Как сделать так, чтобы валидация полей формы (указанных как обязательные) в этом случае не проводилась?
« Последнее редактирование: 02.06.2017, 21:16:20 от GuDeVic » Записан
Septdir
Практически профи
*******

Репутация: +72/-3
Online Online

Пол: Мужской
Сообщений: 1776


Skype: septdir


« Ответ #1 : 02.06.2017, 21:15:41 »

Куда потеряли модель и XML Да и что за комонент тоже знать не помешает
А вообще с радио кнопками бяда в этом в плане ибо они в любом случае имеют значение.
Варианта 4.
1. Сделать на js
2. Прям в котролере сделать проерку с редиректом
3. В моделе сделать тоже что в p2.
4. Плагин на beforeSave.
Вроде у checkbox такого нет. Кроме того можно попробовать значение на отказе не указывать. тобишь не 0 а value=""
« Последнее редактирование: 02.06.2017, 21:19:19 от Septdir » Записан
GuDeVic
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 151


« Ответ #2 : 02.06.2017, 21:25:42 »

Куда потеряли модель и XML
А вообще с радио кнопками бяда в этом в плане ибо они в любом случае имеют значение.
Варианта 3.
1. Сделать на js
2. Прям в котролере сделать проерку с редиректом
3. В моделе сделать тоже что в p2.
Спасибо за ответ.
Ну, радио-кнопки в данном случае, вроде, не мешают. Если я вывожу все остальные поля формы как input, то все остальное работает. А если value (чтобы исключить изменение полей), то начинаются угрозы - вы не заполнили поле такое-то и такое-то.
Научите, пожалуйста, как получить в контроллере
Показать текстовый блок
чтобы передать в модель
Записан
Septdir
Практически профи
*******

Репутация: +72/-3
Online Online

Пол: Мужской
Сообщений: 1776


Skype: septdir


« Ответ #3 : 02.06.2017, 21:33:27 »

Без всего контекста и желательно в живом виде будет не просто но пропробую
У вас в контролере есть функция public function register()
В ней вы в модель передаете $requestData = $this->input->post->get('jform', array(), 'array');
Самый простой, хотя по правде самый топроный будет сразу после этого проверить нужное поле.
тут много враиантов, можно в цикл засунуть можно по ключу проверить.
И если значение поля вас не устраивает, то делаете редирект обратно с ошибкой
Japplication redirect в помощь.
Кроме того. во время работы можете в контролере написать exit  до передачи данных в модель это остановит выполнение скрипта и будет удобно работать ибо не придеться что-то делать в слепую и каждый раз загоно нажимать на сохранение.
Записан
GuDeVic
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 151


« Ответ #4 : 02.06.2017, 21:50:19 »

Без всего контекста и желательно в живом виде будет не просто но пропробую
У вас в контролере есть функция public function register()
В ней вы в модель передаете $requestData = $this->input->post->get('jform', array(), 'array');
Самый простой, хотя по правде самый топроный будет сразу после этого проверить нужное поле.
тут много враиантов, можно в цикл засунуть можно по ключу проверить.
И если значение поля вас не устраивает, то делаете редирект обратно с ошибкой
Japplication redirect в помощь.
Кроме того. во время работы можете в контролере написать exit  до передачи данных в модель это остановит выполнение скрипта и будет удобно работать ибо не придеться что-то делать в слепую и каждый раз загоно нажимать на сохранение.

Т.е. вместо  
Показать текстовый блок
Записан
GuDeVic
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 151


« Ответ #5 : 02.06.2017, 22:01:15 »

Уф-ф-ф...
Спасибо Вам большое!
Записан
robert
Профи
********

Репутация: +375/-14
Offline Offline

Пол: Мужской
Сообщений: 4066


« Ответ #6 : 02.06.2017, 22:01:51 »

Т.е. вместо  
Показать текстовый блок
Так вы лишите всех полей проверки. Поставьте
Код
filter="raw"
в XML поля, которое не нужно проверять.
Записан
Septdir
Практически профи
*******

Репутация: +72/-3
Online Online

Пол: Мужской
Сообщений: 1776


Skype: septdir


« Ответ #7 : 02.06.2017, 22:02:04 »

Т.е. вместо  
Показать текстовый блок
Да нет же. Еще до передачи в модель сделать проверку или же в самой моделе
Записан
Septdir
Практически профи
*******

Репутация: +72/-3
Online Online

Пол: Мужской
Сообщений: 1776


Skype: septdir


« Ответ #8 : 02.06.2017, 22:02:53 »

del plz
Записан
GuDeVic
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 151


« Ответ #9 : 02.06.2017, 23:09:51 »

Да нет же. Еще до передачи в модель сделать проверку или же в самой моделе
В опции, когда ничего в самой форме уже проверять не надо (она уже прошла стандартную валидацию при создании), только имитация некоторого согласия/несогласия  руководителя.
Но возникла другая проблема. В компоненте создается несколько типов записей. В зависимости от типа записи, в форму включаются или не включаются некоторые поля. Оказалось, что если в одном типе записей поле является обязательным, то при валидации записи другого типа, где этого поля нет вообще, приходит сообщение, что требуется заполнить поле, которого в записи вообще нет.
Записан
Septdir
Практически профи
*******

Репутация: +72/-3
Online Online

Пол: Мужской
Сообщений: 1776


Skype: septdir


« Ответ #10 : 02.06.2017, 23:25:08 »

В опции, когда ничего в самой форме уже проверять не надо (она уже прошла стандартную валидацию при создании), только имитация некоторого согласия/несогласия  руководителя.
Но возникла другая проблема. В компоненте создается несколько типов записей. В зависимости от типа записи, в форму включаются или не включаются некоторые поля. Оказалось, что если в одном типе записей поле является обязательным, то при валидации записи другого типа, где этого поля нет вообще, приходит сообщение, что требуется заполнить поле, которого в записи вообще нет.
Нумораль мало меняться. А насчёт включаются тут либо свою валидачцию делать либо тупо две формы
Записан
GuDeVic
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 151


« Ответ #11 : 02.06.2017, 23:39:13 »

Нумораль мало меняться. А насчёт включаются тут либо свою валидачцию делать либо тупо две формы
Ещё раз большое спасибо. С собственной валидацией я понимаю в контроллере я поняла. А по второму вопросу - скорее всего где-то ошиблась, раньше ведь работало, наверное, в рамках улучшения где-то сделала ошибку.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet