Ajax到控制器功能(codeigniter)无法正常工作

时间:2014-02-28 06:53:56

标签: javascript php jquery ajax codeigniter

加载构建器控制器

<a class = "button tiny" href = "<?php echo site_url('builder/app/'.$experiment->eid); ?>"> Edit </a>

CodeIgniter控制器

class Builder extends MY_Controller{      
    public function index(){
        $data['title'] = 'Experiment';
        $data['main_content'] = 'experiment/add_experiment_form';
        $this->load->view('_main_layout', $data);   
    }

    public function app($eid = 0){
        $data['title'] = 'Experiment';
        $data['eid'] = $eid;
        $data['main_content'] = 'experiment/add_experiment_form';
        $this->load->view('_main_layout', $data);
    }

    public function save() {
        $message = $this->input->post('msg');
        echo $message;
    }
}

JAVASCRIPT

$("#getObjectValues").click(function () {
            var msg = '[';
            for(i=1; i<$.count; i++){
                if (i!=1) {msg+=","}
                var offset = $('#obj'+i).offset();
                var xPos = offset.left;
                var yPos = offset.top;
                msg += "("+xPos+","+yPos+")";
            }
            msg += ']';

            $.ajax({
                url:"builder/save",
                type:"POST",
                data:{'msg':msg},
                success: function(data) {
                    alert('success '+data);
                    window.location.href = "<?php echo site_url($this->session->userdata('active_role').'/experiments'); ?>";
                }

            });
        });

单击另一个html文件中的编辑按钮会从构建器控制器触发应用程序功能。然后它加载页面add_experiment_form,提供的javascript是一个单独的html文件。单击getObjectValues button时,变量msg将收集一些信息。然后使用ajax,我将msg传递给控制器​​function save()。当alert成功部分variable s时出现问题。它会提示add_experiment_form的原始HTML而不是$message中的save() function

问题是当我将button's href更改为'builder'时,整个系统正常工作,意味着success function alerts正确的消息,而不是整个HTML代码。

1 个答案:

答案 0 :(得分:0)

使用echo json_encode($message);然后回复成功

 var = $.parseJSON($data);
 alert (json)