Ajax formulaire de validation dans codeigniter
htfepb les gars,
J'ai travaillé sur ajax récemment, et j'ai un problème lors de l'utilisation avec codeigniter formulaire de validation de la bibliothèque. J'ai utilisé l'exemple de l'outil générer dans la fonction http://formtorch.geekhut.org/.
Maintenant, ajax fonctionne parfaitement et renvoyer les données correctement lorsque j'utilise json_encode()
fonction avec les données factices, mais la validation dans l'exemple utilise validation
de la bibliothèque au lieu de form_validation
de la bibliothèque, ce qui semble être une version plus ancienne.
Pour que, la validation ne fonctionne pas avec ajax dans cet exemple, $this->form_validation->run()
fonction ajax de retour pas de résultat, même si je me fais l'écho des données factices à l'aide de json_encode()
dans le début de create_course()
.
quel est donc le problème avec la validation avec l'ajax, et m'expliquer comment les données envoyées par ajax reçu par le contrôleur.
c'est donc mon code:
function create_course()
{
$this->form_validation->set_rules('course_code', 'course_code', 'trim|xss_clean|required');
$this->form_validation->set_rules('name', 'name', 'xss_clean|required');
//.. etc
if ($this->form_validation->run()) {
//validation ok
$data['course_code'] = $this->form_validation->set_value('course_code');
$data['name'] = $this->form_validation->set_value('name');
//... etc
if ($this->models_facade->create_course($user_id,$data)) { //success
$data = array( 'profile_change' => $this->lang->line('profile_change'));
} else { //fail
$data = array( 'profile_change_error' => $this->lang->line('profile_change_error'));
}
}
else
{
$data = array(
'course_code' => $this->form_validation->course_code_error,
'name' => $this->form_validation->name_error
);
}
echo json_encode($data);
}
et c'est l'Ajax de Jquery fonction
$(function(){
$("#submit").click(function(){
var course_code = $("#course_code").val();
var name = $("#name").val();
//etc
$.post("<?php echo base_url() ?>home/create_course", course_code:course_code, name:name},
function(data){
function(data){
alert(data.data);
$("#course_code_error").html(data.course_code);
$("#name_error").html(data.name);
},'json');
});
return false;
});
OriginalL'auteur Khaled | 2011-04-03
Vous devez vous connecter pour publier un commentaire.
Quelle version de Codeigniter utilisez-vous? Avez-vous pensé à la charge de la validation de la bibliothèque dans votre construction?
c'est toujours un petit quelque chose 🙂
OriginalL'auteur tylerpenney
Plutôt que d'imprimer via "this->form_validation->xxxx_error", vous pouvez utiliser le Formulaire de la méthode d'assistance "form_error()" pour appeler les messages d'erreur.
De sorte que vous pouvez faire quelque chose comme..
OriginalL'auteur ericbae
Vous pourriez aussi envisager de mettre la sortie type de contenu de l'en-tête de données JSON.
OriginalL'auteur jjwdesign
Si vous effectuez une requête ajax, vous pouvez utiliser le validation_errors().
Lors de la validation de l'exécuter vais remplir le tableau de messages d'erreur.
Voici un exemple :
Et puis sur le côté client, vous pouvez utiliser le type de réponse que :
Espère que j'ai aidé même si je suis en 2 année de retard.
P. S Désolé pour mon mauvais anglais.
OriginalL'auteur Gabtheviking
Merci pour votre réponse! Veuillez inclure une explication avec le code afin de fournir la meilleure réponse.
OriginalL'auteur Kuldeep Singh