2010-06-13 2 views
2

J'essaie de configurer la validation sur un simple formulaire de contact créé à l'aide de l'assistant de formulaire. Aucune validation du tout se produit. Qu'est-ce qui ne va pas?Pourquoi ma validation de formulaire CodeIgniter ne fonctionne-t-elle pas?

Dans le code ci-dessous, le mot clé "good" s'affiche toujours, indépendamment de ce qui est entré dans le formulaire, et les valeurs enregistrées définies via set_value ne sont jamais affichées.

Contrôleur

// 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); 
     } 

    } 

Voir

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(); 

Répondre

3

On dirait que vous n'êtes pas la définition des règles de validation en fonction de la façon dont la nouvelle bibliothèque Form_validation fait (le guide de l'utilisateur a un section sur la nouvelle syntaxe). Cela semble être la syntaxe de l'ancienne bibliothèque Validation.

Essayez cette place pour votre tableau $config_rules et voir si votre validation fonctionne correctement:

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

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