CodeIgniter Form Validation - Obtenir le résultat en tant que "tableau" Au lieu de "chaîne"
Je suis en train d'écrire mon formulaire de validation de classe à l'aide de CodeIgniter. Est-il un moyen pour que je puisse obtenir des messages d'erreur dans la paire nom /valeur? Par exemple, dans un échantillon de formulaire il y a quatre champs: user_name
password
password_conf
et timezone
. Parmi eux user_name
et password
validation a échoué après l'exécution de l'suivantes:
$result = $this->form_validation->run();
Si la fonction renvoie la valeur false, je veux trouver les erreurs dans les paires nom /valeur comme suit:
Array
{
'user_name' => 'user name is required',
'password' => 'passord is required'
}
J'ai vraiment envie de former une JSON, qui je peux passer de nouveau à l'appel AJAX. J'ai une (sale) solution: je peux appeler les méthodes de validation, un par un, comme suit:
$this->form_validation->required($user_name);
$this->form_validation->required($password);
Est-il un autre moyen, pour obtenir tous les messages d'erreur à la fois de paire nom /valeur?
MODIFIER: j'ai été proposé de faire de la validation avec jQuery à partir de l'une des réponses:
jQuery aidera dans la validation côté client, mais qu'en est côté serveur, j'utilise CodeIgniter validation.
J'ai conçu de sorte que:
- Je poste toutes les valeurs à l'aide d'AJAX.
- Valider dans le côté serveur (PHP).
- Effectuer l'opération souhaitée si les entrées sont valides; else return erreur à l'utilisateur.
source d'informationauteur Sabya
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une façon de me regarder dans le CodeIgniter code:
J'ai étendu la bibliothèque CI_Form_validation comme: -
Je sais, c'est un hack, mais elle servira à mon besoin pour le moment. J'espère CodeIginter équipe rapidement avec une interface pour accéder à ce tableau.
Vous pouvez simplement utiliser,
$this->form_validation->error_array();
C'est à partir de la la classe de référence de la documentation de CodeIgniter.
De voir que le code de l'allumeur de validation vous donne les messages d'erreur sur une page normale de rafraîchissement ne serait-il pas préférable d'utiliser quelque chose comme le plugin jquery validation qui permettra de valider entièrement côté client avant l'envoi du formulaire? Sans AJAX nécessaire de cette façon.
EDIT:
Je ne dis pas que ne PAS le FAIRE côté serveur de validation, c'est juste que l'affichage avec AJAX afin de valider n'est pas nécessaire et permettra de réduire le serveur de succès si vous le faire côté client. Il sera gracieusement dégrader à l'actualisation de la page avec des erreurs sur ou un message de réussite.
La solution, j'aime mieux ne pas impliquer l'ajout d'une fonction de n'importe où ou l'extension de la validation de la bibliothèque:
Référence: http://thesimplesynthesis.com/post/how-to-get-form-validation-errors-as-an-array-in-codeigniter/
Vous devriez être en mesure d'appeler à tout moment dans votre code. Aussi, il est intéressant de noter il y a un nouveaux thread qui parle de cela.