Comment afficher les erreurs de validation en utilisant la redirection dans codeigniter?
J'ai eu affaire à un problème pour un certain temps. Comment puis-je régler les erreurs de validation à l'aide de redirection dans une fonction? C'est le code que j'ai dans mon controller :
function send()
{
$this->form_validation->set_rules('e-mail', 'Email', 'trim|required|valid_email');
$this->form_validation->set_rules('cellphone', 'Cellphone Number', 'trim|required|is_natural');
$this->form_validation->set_message('required', '%s is required.');
$this->form_validation->set_message('valid_email', '%s is not a valid Email Address');
$this->form_validation->set_message('is_natural', '%s can only contain numbers.');
$this->form_validation->set_error_delimiters('<li>', '</li>');
if($this->form_validation->run() == FALSE)
{
redirect ('/');
}
else
{
echo '<pre>';
print_r($_POST);
echo '<pre>';
}
}
Et c'est le code que j'utilise dans mon fichier de vue:
<? if (validation_errors())
{
echo '<div id="validation_errors" title="Error:">';
echo '<div class="response-msgs errors ui-corner-all"><span>Errors:</span><br /><ul>';
echo validation_errors();
echo '</ul></div>';
echo '</div>';
}
?>
source d'informationauteur Afshin
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé le moyen de le faire. La redirection ne pas conserver les données à afficher. J'ai utilisé le code ci-dessous pour résoudre le problème:
Je sais c'est un peu tard, mais cette méthode fonctionne à merveille pour moi.
Si vous êtes à la validation de votre formulaire dans une autre fonction que celle que le formulaire est chargé, vous pouvez envoyer votre
validation_errors()
à n'importe quelle page que vousredirect()
en passant par levalidation_errors()
méthode pour$this->session->set_flashdata()
comme suit:Dans votre contrôleur de fonctions où vous aimeriez que vos erreurs ou la réception de messages vous pouvez ensuite les mettre à la
$data
tableau comme suit:En haut de mon point de vue j'ai l'habitude de comprendre:
En utilisant twitter bootstrap classes pour mettre en forme les messages qui permet de le différencier d'eux.
J'ai inclus la
message
flashdata de sorte que vous pouvez voir comment ce type de message d'erreur ou que vous souhaitez envoyer, vous êtes en mesure de les formater différemment pour toutes informations, d'alerte, de réussite et de messages d'erreur.Que par mon commentaire:
Tout d'abord, vous avez besoin de changer votre formulaire afin qu'il pointe vers la page en cours, c'est à dire
current_url()
ousite_url('controller/index')
.Quand vous allez à la
index
sans poster, il sera tout simplement ignorer la validation. Lors de l'envoi de votre formulaire, il sera exécuté de la validation.Vous pouvez ensuite utiliser le construit en
form_error
ouvalidation_errors
méthodes pour afficher les erreurs dans votreindex
vue.j'ai finalement trouvé une solution pour la redirection avec validation_errors
C'est à l'aide à passer le validation_errors dans les données de la session,
je fais comme ça
et dans la page j'ai utilisé
Je vous souhaite, comme cette solution rapide