#codeigniter-2
#codeigniter-2
Вопрос:
Предположим, что в моей форме есть два поля, а именно first_name и last_name
Я установил правило проверки только для first_name.
set_value должно работать для обоих полей независимо от правила? верно?
Для меня это работает только для полей, у которых есть правила с ними!!!
Ответ №1:
set_value работает только с элементами, которые вы выбрали для проверки с использованием класса form_validation.
Самый простой способ — притвориться, что вы выполняете проверку, добавив это в
массив конфигурации проверки формы ( ‘field’ => ‘address1’, ‘label’ => «, ‘rules’ => «),
Кто-то взломал библиотеку CI, но я не смог найти документацию по этому вопросу сегодня … Или использовать эту модификацию вместо:
Комментарии:
1. Важно указать, что затем вы должны также вызвать метод запуска form_validations. Одной установки правил проверки недостаточно.
Ответ №2:
Существует простое решение этой проблемы. передайте $_POST['your_field_name']
переменную в качестве второго параметра для полей, для которых нет никакого правила проверки.
echo set_value('o_title',$_POST['o_title']);
У меня это сработало.
Комментарии:
1. Это не очень хорошее решение — при первой загрузке формы будет выдаваться ошибка ‘undefined index’, поскольку в массиве $ _POST ничего нет, и это не позволяет вам предоставить подлинное значение по умолчанию, если вам нужно.
Ответ №3:
если вы задаете правило проверки только с первым параметром, кажется, что оно работает нормально.
$this->form_validation->set_rules('city');
и т.д.
таким образом, правила проверки как такового не существует, но оно повторно заполняет поле для вас.
Ответ №4:
Если вам нужна поддержка set_checkbox, смотрите Этот код.
Ответ №5:
иногда я использую поддельные правила, такие как trim или обратный вызов, просто для повторного заполнения поданных данных
$this->form_validation->set_rules('city','City','trim');