Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 25 апр 2024, 16:34

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
СообщениеДобавлено: 09 фев 2014, 17:57 
Не в сети
Новичок

Зарегистрирован: 31 янв 2014, 23:19
Сообщения: 11
Как сделать валидацию мультиселекта (multiselest)?

Нужно, чтобы пользователь выбрал хоть один пункт.
Массив значений, из которых состоит мультиселек - это значения из БД, которые могут удаляться, добавляться.
Т.е. нет заранее известного четкого массива.

т.е. массив значений может быть array("0"=>"Детектив", "1"=>"Фантастика"), а после манипуляций с таблицей "Жанры" в БД,
стать array("0"=>"Детектив","2"=>"Лирика" ), а потом array("2"=>"Лирика","3"=>"Наука"),

key массива - это id из таблицы Жанры,
value массива -это жанры из таблицы Жанры.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 фев 2014, 18:24 
Не в сети
Бывалый

Зарегистрирован: 14 июн 2013, 17:19
Сообщения: 82
Мне кажется просто сделать проверку $post[имя поля] если пустое, то выводить ошибку... В хелпере валидации вроде есть такое правило.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 фев 2014, 20:56 
Не в сети
Новичок

Зарегистрирован: 31 янв 2014, 23:19
Сообщения: 11
arhont писал(а):
Мне кажется просто сделать проверку $post[имя поля] если пустое, то выводить ошибку... В хелпере валидации вроде есть такое правило.


Пробовала. Не получается. Выдает значение "не может быть пустым", а когда выбираешь пункт из мультиселекта, сообщение об ошибке не исчезает и данные не отправляются.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 фев 2014, 21:02 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
Eсли массив для селекта для всех одинаковый, то можно хранить его в кеше, если индивидуальный, то в сессии, а потом уже передавать в валидацию, чтобы не извлекать массив дважды. Думаю если значений может быть несколько, то придется добавить метод валидации аля:

Код:
function multiselect($values, array $options)
{
    foreach( (array) $values as $value)
    {
         if ( ! in_array($value, $options))
         {
              return FALSE;
         }
    }
    return TRUE;
}

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group