Почему не работает проверка формы CodeIgniter? - PullRequest
2 голосов
/ 13 июня 2010

Я пытаюсь настроить проверку в простой контактной форме, созданной с помощью помощника по форме.Никакой проверки вообще не происходит.Что не так?

В приведенном ниже коде ключевое слово «good» всегда отображается независимо от того, что введено в форму, а сохраненные значения, заданные с помощью set_value, никогда не отображаются.

Контроллер

// Contact
    function contact() {
        $data['pageTitle'] = "Contact";
        $data['bodyId'] = "contact";

        $this->load->library('form_validation');

        $config_rules = array ('email' => 'required','message' => 'required');

        $this->form_validation->set_rules($config_rules);

        if ($this->form_validation->run() == FALSE) {
            echo "bad";            
            $data['include'] = "v_contact";    
            $this->load->view('v_template',$data);

        } else {
            echo "good";
            $data['include'] = "v_contact";        
            $this->load->view('v_template',$data);
        }

    }

Просмотр

echo validation_errors();
echo form_open('events/contact');

// name
echo form_label('Name', 'name');
$data = array (
        'name' => 'name',
        'id' => 'name',
        'maxlength' => '64',
        'size' => '40',
        'value' => set_value('name')
    );
echo form_input($data) . "\n<br />";

// email address
echo form_label('Email Address', 'email');
$data = array (
        'name' => 'email',
        'id' => 'email',
        'maxlength' => '64',
        'size' => '40',
        'value' => set_value('email')
    );
echo form_input($data) . "\n<br />";

// message
echo form_label('Message', 'message');
$data = array (
        'name' => 'message',
        'id' => 'message',
        'rows' => '8',
        'cols' => '35',
        'value' => set_value('message')
    );
echo form_textarea($data) . "\n<br />";

echo form_submit('mysubmit', 'Send Message');

echo form_close(); 

1 Ответ

3 голосов
/ 13 июня 2010

Похоже, вы не устанавливаете правила проверки в соответствии с тем, как это делает новая библиотека Form_validation (в руководстве пользователя есть раздел с новым синтаксисом). Это похоже на синтаксис старой библиотеки Validation.

Попробуйте использовать это вместо массива $config_rules и посмотрите, правильно ли проходит проверка:

$config_rules = array(
    array('field' => 'email', 'rules' => 'required'), 
    array('field' => 'message', 'rules' => 'required')
);

$this->form_validation->set_rules($config_rules);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...