2009-11-08 3 views

Répondre

0

gAMBOOKa,

créer une 'nouvelle' règle qui vérifie également pour max_length

$this->form_validation->set_rules('username', 'Username', 'required|_max_length[12]'); 

et pour la méthode ..

function _max_length($val) 
    { 
     if (strlen($this->input->post('username')) > $val) 
     { 
        $this->form_validation->set_message('_max_length', 'Max characters allowed: 5') 
      return FALSE; 
     } 

     return TRUE; 
    } 

ajouter à votre contrôleur comme une nouvelle règle et mettre le message comme si ---^

1

est correcte @ Daniel. Par CodeIgniter's documentation, vous pouvez remplacer le message d'erreur par défaut pour toute règle de validation (comme "min_length", "max_length", etc.) comme ceci:

$this->form_validation->set_message('validation_rule', 'Your message here'); 

Ainsi, dans votre exemple, vous pouvez faire:

$this->form_validation->set_message('max_length', 'Max characters allowed: 5'); 

Indiquez simplement où vos règles de validation existent.

+0

Je sais pour remplacer le message par défaut, mais comment puis-je incorporer le paramètre de longueur dans le nouveau message? 5 dans ce cas. J'ai plusieurs champs avec des longueurs variables, je préférerais ne pas écrire un message pour chacun d'eux. – HyderA

3

J'ai eu le même problème et même si ce post est vieux, Il n'y a pas de réponse correcte. Il suffit d'utiliser l'espace réservé% s à la deuxième place de votre message. Dans la documentation (http://codeigniter.com/user_guide/libraries/form_validation.html#settingerrors) il est un exemple pour un champ vide ne pas être:

$this->form_validation->set_message('username_check', 'The %s field can not be the word "test"'); 

Là, il utilise l'espace réservé du% pour la nom du champ, mais si vous modifiez le message « max_length » mettre le nom du champ première et la deuxième longueur comme ceci:

$this->form_validation->set_message('max_length', 'The field %s max length is %s'); 

cela fonctionnera. Ce n'est pas la meilleure solution, mais celle-là fonctionne pour moi. Hope it helps

3

application/langue/fr/en_lang.php J'ai ceci:

$lang['name'] = "Name"; 
$lang['form_required'] = "is required."; 

demande /langue/es/es_lang.php J'ai ceci:

$lang['name'] = "Nombre"; 
$lang['form_required'] = "es requiero."; 

application/controllers/yourController.php J'ai ceci:

$this->form_validation->set_rules('name', $this->lang->line('name'), 'required|alpha|xss_clean'); 

$this->form_validation->set_message('required', '%s ' . $this->lang->line('form_required')); 

J'espère que cette aide!

0

Jetez un oeil à system/language/english/form_validation_lang.php et vous trouverez

$lang['max_length'] = "The %s field can not exceed %s characters in length."; 

qui est facilement remplacée en copiant à

application/language/english/form_validation_lang.php 

Et changer à la chaîne que vous souhaitez. Ne pas modifier le fichier directement system/, alors il sera écrasé si vous mettez à niveau CodeIgniter.

Questions connexes