5 votes

Est-il possible d'utiliser ou dans la validation de formulaire de codeigniter ?

J'ai une entrée qui peut être décimale ou numérique. Je veux utiliser cette règle :

$this->form_validation->set_rules('price', 'Price', 'decimal|numeric');

Mais je pense que les règles de l'aide à la validation de formulaire ne fonctionnent pas avec l'instruction "ou". Si le prix est quelque chose comme "149.99" il est valide mais si le prix est "150" il ne l'est pas.

Est-ce que j'ai raté quelque chose ou est-ce qu'il n'est pas possible d'utiliser quelque chose comme ça :

 $this->form_validation->set_rules('price', 'Price', 'decimal or numeric');

5voto

Starx Points 38727

CI, ne permet pas de mélanger les types de données lors de la validation. Au lieu de cela, créez votre propre règle de validation.

Déclarez une règle comme suit

$this->form_validation->set_rules('price', 'Price', 'callback_decimal_numeric');

Après avoir créé une méthode sur le contrôleur

    public function decimal_numeric($str)
    {
        if ($str <isdecimal&nummeric>) //Use your logic to check here
        {
            $this->form_validation->set_message('decimal_numeric', 'The %s field validation has failed');
            return FALSE;
        }
        else
        {
            return TRUE;
        }
    }

0voto

gopi1410 Points 2588

The decimal rule requires a parameter to be passed

http://codeigniter.com/user_guide/libraries/form_validation.html#rulereference

-1voto

Abhishek Points 1

Utiliser ( requis|décimal ) ce exemple :
$this->form_validation->set_rules('lat', 'Latitude', 'required|decimal') ;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X