2010-06-13 6 views
2

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

В приведенном ниже коде всегда отображается «хорошее» ключевое слово, независимо от того, что введено в форму, и сохраненные значения, установленные с помощью 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(); 

ответ

3

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

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

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

$this->form_validation->set_rules($config_rules); 
Смежные вопросы