codeigniter datatable将变量发送到datatable查询

时间:2012-11-07 13:37:18

标签: php javascript json codeigniter datatable

我使用了库数据表和codeigniter

我在视图中有一个变量

$afd = "1"

在这个视图中我有一个javascript

<script type="text/javascript" charset="utf-8">

$(document).ready(function() {
$('#datatables').dataTable( {
"bJQueryUI":true,

"bProcessing": true,

"bServerSide": true,

"sPaginationType":"full_numbers",

"sAjaxSource": "<?=base_url()?>index.php/report/report/ajax_view_panen/",

"aaSorting": [[ 0, "asc" ]]

});

});  </script>

调用控制器codeigniter中的数据表。功能控制器是“ajax_view_panen”

这是我的控制器

function ajax_view_panen()
{
$this->load->library('Datatables');
$this->datatables->from('panen');
$this->datatables->select('id,jml_panen,hariff_blok_id,hariff_afdeling_id,tgl_panen,bulan');
$this->datatables->where('id', $afd);
echo $this->datatables->generate();
}

问题是如何将变量$afd发送到我的控制器。所以变量在查询$this->datatables->where('id', $afd);内,因此数据表显示id = 1

我的英语不好。

BR

亚历

2 个答案:

答案 0 :(得分:1)

最简单的方法是发送CI函数参数

function ajax_view_panen($afd)
{
  ...
  $this->datatables->where('id', $afd);
  echo $this->datatables->generate();
}

所以你需要将这个变量传递给你的视图并调用正确的url:

<script type="text/javascript" charset="utf-8">
...
"sAjaxSource": "<?=base_url()?>index.php/report/report/ajax_view_panen/<?=$afd?>",
...
</script>

请注意,您可能需要清理输入以确保安全。

$afd = intval($afd)这样的数字参数。

答案 1 :(得分:1)

Serg是正确的您可以将值添加到GET变量列表中。

否则如果想要添加到帖子中:

$(document).ready(function() {
$('#datatables').dataTable( {
"bJQueryUI":true,
"bProcessing": true,
"bServerSide": true,
"sPaginationType":"full_numbers",
"sAjaxSource": "<?=base_url()?>index.php/report/report/ajax_view_panen/",
"aaSorting": [[ 0, "asc" ]],
"fnServerParams": function ( aoData ) {
        aoData.push( { "afd": "<? php echo $afd; ?>"} );
 }

});

});