2010-09-05 4 views
2

Je suis débutant dans CodeIgniter ... et j'essaie de faire la validation de formulaire pour l'entrée de tableau ... le nom du tableau est pages [].Comment définir un message d'erreur personnalisé avec form_validation et CodeIgniter

et je l'ai écrit:

$this->form_validation->set_rules('pages[]','','required'); 

si je peux utiliser que:

$this->form_validation->set_message('required', 'you not selected pages.'); 

il ne changera pas les autres entrées de validation "nécessaires" params?

Alors, comment puis-je définir un message d'erreur uniquement pour une validation?

Répondre

2

Cela ne fonctionne pas comme vous l'avez dit, vous devriez lire this section of the user guide plus attentivement. Je ne suis pas sûr de pouvoir mieux expliquer, mais le premier champ de la méthode set_message ne fait pas référence au type de validation mais au nom de la fonction de rappel, c'est la fonction qui effectue le travail de validation personnalisé. Ce que vous devez faire est de définir votre fonction de rappel (le guide a un bon exemple), dans lequel vous itérez les éléments de votre tableau et comptez ce qui est vérifié. Si à la fin de l'itération, le compteur est 0, vous définissez votre message d'erreur.

Espérons que cela aide.

+0

bien CodeIgniter 2 devraient avoir une fonction de mise en place d'un message personnalisé, il existe une solution à ce problème ici [http: //stackoverflow.com/questions/9108718/how-can-i-setup-custom-error-messages-for-each-form-field-in-codeigniter](http://stackoverflow.com/questions/9108718/how -can-i-setup-erreur-messages-pour-chaque-form-champ-dans-codeigniter) – machineaddict

1

Ceci est ma classe Form_Validation personnalisée. vous pouvez l'utiliser si vous le souhaitez. Mettez ce fichier sous votre répertoire de bibliothèques. vous pouvez utiliser le message de jeu comme celui-ci:

$this->form_validation->setError(YOUR_INPUT_NAME, THE_MESSAGE); 

ex: $this->form_validation->setError('email', 'Invalid email'); 

-

class MY_Form_validation extends CI_Form_validation { 
    public function set_error($field, $pesan_error){ 
     $this->_field_data[$field]['error'] = $pesan_error; 
    } 
    public function get_error($field){ 
     return $this->_field_data[$field]["error"]; 
    } 
    public function get_all_error(){ 
//  return $this->_field_data[$field]["error"]; 

     $fields = $this->_field_data; 
     $pesan = ""; 
     foreach($fields as $field) { 
      if($field["error"]) { 
       $pesan .= "<p>$field[error]</p>"; 
      } 
     } 
     return $pesan; 
    } 
} 
Questions connexes