Я устанавливаю новые правила для своей формы, и даже если поля формы не пусты, я все равно застреваю в блоке проверки валидации

функция проверки:

    if (isset($_POST['action']) && $this->input->post('action') === "add_category") {
        echo "<pre>";
        print_r($_POST);
        $this->form_validation->set_rules($this->input->post('cat_name'), 'Category Name', 'required');
        if ($this->form_validation->run() === FALSE) {
            echo "false";
            exit;
         }
         else {
                echo "true" ; exit;
            }
        }

вывод

Array
(
    [action] => add_category
    [cat_name_] => gbddbd
    [parent_cat] => 1
    [cat_status] => 1
)
false

Я создаю простые формы HTML на мой взгляд, а не с помощью CI form helpers

0
baig772 28 Май 2014 в 02:03
Вы загрузили библиотеку form_validation?
 – 
Vickel
28 Май 2014 в 02:42
Да, я сделал $this->load->library('form_validation'); в начале своей функции
 – 
baig772
28 Май 2014 в 02:43
Ваш set_rules() должен быть set_rules('cat_name','имя категории', 'обязательно')
 – 
Vickel
28 Май 2014 в 02:52
Да, это сработало, пожалуйста, добавьте свой ответ :)
 – 
baig772
28 Май 2014 в 02:53
Я добавил ответ и некоторые пояснения, рад, что смог помочь...
 – 
Vickel
28 Май 2014 в 03:12

2 ответа

Лучший ответ

Есть ошибка в том, как вы используете set_rules()

Правильный способ:

$this->form_validation->set_rules('cat_name','Category Name', 'required')

объяснение: первый параметр set_rules () указывает имя проверяемого поля ввода. В вашем коде вы пытаетесь присвоить значение поля ввода вместо имени

0
Vickel 28 Май 2014 в 03:04

Вы устанавливаете правило для «cat_name», а поле формы - «cat_name_», поэтому оно не работает. Измените имя поля формы на "cat_name"

0
Virtu 28 Май 2014 в 02:13
Мое поле формы cat_name, я не понял тебя
 – 
baig772
28 Май 2014 в 02:16
Посмотрите на этот массив, в нем есть cat_name_, сосредоточьтесь на _ это то, что вы получаете в сообщении, и вы установили правило для массива cat_name ( [action] => add_category [cat_name_] => gbddbd [parent_cat] => 1 [cat_status] => 1 )
 – 
Virtu
28 Май 2014 в 02:21
Да, тогда мне нужно спросить, почему это так? я имею в виду, что мой ввод похож на <input type="text" class="form-control " placeholder="Name" name= "cat_name " required="true" />
 – 
baig772
28 Май 2014 в 02:23
Был пробел, исправил, проблема осталась
 – 
baig772
28 Май 2014 в 02:25
После удаления пробела, что говорит ваш print_r($_POST)?
 – 
Virtu
28 Май 2014 в 22:25