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