Jquery .post和Codeigniter问题

时间:2012-01-30 02:17:27

标签: jquery ajax codeigniter

我正在尝试使用$ .post将数据发送到Controller并接收返回的数据。我使用project_detail / pub作为我的指定url,并希望从控制器返回$go。但是,返回的数据是一个html页面,它来自'show'函数而不是'pub'函数。我不知道是怎么回事。请帮忙。非常感谢。

查看页面:Jquery代码

$(document).ready(function(){
    $('#update').click(function(){
    var tableVal=new Array();
        //get the value from table td       
        $('#projects tr td').each(function (){
            tableVal[this.id] = $(this).text();
        });

        //send data to the controller 'project_detail' and function 'pub' with .post    
        $.post('project_detail/pub', {'tableVal':tableVal},function(result)
        {
            alert(result);
        })
    })
});

控制器代码

class Project_detail extends CI_Controller{

    function __construct()
    {
        parent::__construct();
    }

    //The url I send to with .post and want to return $go 
    public function pub()
    {
    $go='test! test!';
    return $go;
    }

    //for some reasons, `$this->load->view('include/template', $data)` is loaded to the     
    //result in view page instead of $go
    public function show () 
    {                   
        $data['view']='project_detail_V';
        $this->load->view('include/template', $data);

    }


}     

2 个答案:

答案 0 :(得分:0)

您没有在任何地方输出值。试试这个。

//The url I send to with .post and want to return $go 
public function pub()
{
   $go='test! test!';
   print $go;
}

您还可以使用firebug或类似的检查员查看在请求期间从CI返回的值。

答案 1 :(得分:0)

你可以试试这个

的javascript

$(document).ready(function(){
    $('#update').click(function(){
    var tableVal=new Array();
        //get the value from table td       
        $('#projects tr td').each(function (){
            tableVal[this.id] = $(this).text();
        });

        //send data to the controller 'project_detail' and function 'pub' with .post    
        $.post('project_detail/pub', {'tableVal':tableVal},function(result)
        {
            alert(result);
        },'json');
    })
});

控制器

public function pub()
{
   $go='test! test!';

   echo json_encode($go);
}