7
votes

Comment valider des tableaux multidimensionnels avec codeigniter et jQuery

hi, j'ai besoin de valider une forme multidimensionnelle comme celle-ci xxx pré>

Je ne connais pas les dimensions du tableau final car les entrées sont ajoutées de manière dynamique via jQuery. P>

J'utilise CodeDigniter Form_Validation pour le côté serveur et via jQuery avec le validateur JQuery pour le côté client. P>

Ceci est mes règles de formidation P>

$("#add_hotel").validate({
rules: {
    "hotel[][hotel_name]": "required"

  /*  errorElement: "div",
    wrapper: "div"*/
},
messages: {
   "hotel[][hotel_name]": "Please enter the Association Name"
},
submitHandler: function(form) {
    form.submit();
}


0 commentaires

3 Réponses :


0
votes

Compleigniter a une manière très discriminante de gérer les règles de validation des entrées nommées sous forme de tableaux, elle ne validera que si le nom du champ est exactement identique, de sorte que la règle xxx

serait validée. Seulement fonctionner si le champ était en réalité nommé hôtel [] [Nomel].
Puisque ce n'est pas le nom du champ (le nom réel est quelque chose comme l'hôtel [1] [Nom de l'hôtel]), il ne sera pas validé par CodeIdigniter.

Vous pouvez générer le tableau de configuration dinamiquement, mais je Pensez que vous feriez mieux d'écrire vos propres règles de validation pour ces champs séparément.


0 commentaires

11
votes

Array posté

$this->form_validation->set_rules('username', 'Username', 'required');

if ($this->form_validation->run() == FALSE)
{
    // Errors
}
else
{
    // Success
}


2 commentaires

Merci beaucoup, cela fait l'affaire pour la formidation CI Form_Validation. Maintenant, je dois le valider par le plug-in Jquery Validator, mais je ne connais pas le moyen de créer un index Var à l'intérieur de la validation.


Est-il possible d'éviter la boucle et de définir les règles de validation dans la configuration / form_validation.php?



0
votes
   is not working i am trying to like this
     in api data 
     {
      "fullname":"4545",
    "family_detail": [
       {
        "relation_id":""
      },
      {
        "relation_id":"11"
       }]
    }

   in controller 
   $_POST = json_decode(file_get_contents('php://input'),true);

   if ($this->form_validation->run('signup') == FALSE)
    {
     //error
    }else{
      // success
    } 
     in my config file
     $config = array(
   'signup' => array(   
    array(
     'field' => 'fullname',
     'label' => 'Full Name',
    'rules' => 'required'
      ),
     array(
    'field' => 'family_detail[][relation_id]',
    'label' => 'relation_id',
    'rules' => 'required'
     ),
     )

0 commentaires