即使输入数据,代码点火器表单验证也返回false


code igniter form validation returns false even if data is entered

我正在为我的表单设置新规则,即使表单字段不是空的,我仍然会陷入验证检查块

验证功能:

    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

有一个错误,你如何使用set_rules()

正确的方法是:

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

explain: set_rules()的第一个参数指示要验证的输入字段的名称。在您的代码中,您试图分配输入字段的值,而不是名称

您正在为"cat_name"设置规则,而表单字段是"cat_name",因此失败。将表单字段名更改为"cat_name"