如何在codeigniter中使用jtable插件?

时间:2014-08-25 05:58:49

标签: codeigniter jquery-jtable

我正在尝试在框架codeigniter中使用jtable插件,但我遇到了问题。我很困惑如何将视图(jtable javascript代码)中的变量传递给控制器​​并将json_encode从控制器传递到视图。

这是我的代码。

在我的视图页面(Attendance_view.php)。

[html code]

<input style="width:100px" type="text" id="from" name="from" value="<?php echo date("Y-m")."-01";?>">

[js code]

//Prepare jTable
var base_url ="<?=base_url()?>";
$('#TableContainer').jtable({
    title: 'Attendance',
    paging: true,
    sorting: true,
    defaultSorting: 'month ASC',
    selecting: true, //Enable selecting
    multiselect: true, //Allow multiple selecting
    selectingCheckboxes: true, //Show checkboxes on first column

    actions: {
        listAction: '<?=base_url()?>index.php/Attendance_controller/listRecord',
        createAction: '<?=base_url()?>index.php/Attendance_controller/create',
        updateAction: '<?=base_url()?>index.php/Attendance_controller/update',
        deleteAction: '<?=base_url()?>index.php/AttendanceAbsensi_controller/delete'
    },
            ....//another field here
});
//Load attendance from server
$('#TableContainer').jtable('load',{
        month:$("#from").val()
});

在我的控制器中(Attendance_controller.php)

function listRecord()
{
    $this->load->model('Attendance_action');
    $jTableResult=$this->Attendance_action->list_record();
    $data['jTableResult']= json_encode($jTableResult);
    $this->load->view('Attendance_view',$data['jTableResult']);

}

在我的模型中(Attendance_action.php)

function list_record()
{
    //get post variable
    $date=$this->input->post('month');  // i can't get the value.

    //Get record count
    $result = //my query here[select "some data" from "mytable" where month='$date']
    $recordCount = mysql_num_rows($result);


        //Add all records to an array
        $rows = array();
        while($row = mysql_fetch_array($result))
        {
            $rows[] = $row;
        }

        //Return result to jTable
        $jTableResult = array();
        $jTableResult['Result'] = "OK";
        $jTableResult['TotalRecordCount'] = $recordCount;
        $jTableResult['Records'] = $rows;
        return $jTableResult;
}

当我加载控制器页面时,jtable出现错误消息“与服务器通信时出错”。请帮忙。感谢。

3 个答案:

答案 0 :(得分:1)

为什么你使用jtable .can你在这里使用Jquery Datatbles点燃Datatables Library使用那个我们可以实现简单的crud功能

你可以感兴趣,请在下面的网址上查看

https://github.com/IgnitedDatatables/Ignited-Datatables/

http://datatables.net/examples/data_sources/server_side.html

https://ellislab.com/forums/viewthread/160896/

我个人喜欢jquery data-tables.just检查一次

答案 1 :(得分:0)

首先在单独的功能中加载视图页面。在该页面中,您可以调用您的crud Urls

像这样改变你的控制器

function list()
{

    $this->load->view('Attendance_view');

}

function listRecord()
{
    $this->load->model('Attendance_action');
    $jTableResult=$this->Attendance_action->list_record();
     print_r(json_encode($jTableResult));


}

注意:如果这里明确提到如何实施这个

,请你检查一下

http://jtable.org/GettingStarted

答案 2 :(得分:0)

我想分享我的代码。现在问题已解决。我只是像这样更改控制器代码。添加“exit();”在控制器中。

function index() 
{
    $this->load->view('Attendance_view');

}

function listRecord()
{
    $this->load->model('Attendance_action');
    $jTableResult=$this->Antendance_action->list_record();
    print_r(json_encode($jTableResult));
    exit();
}