4

我正在使用 CodeIgniter,但遇到以下问题。

我有一个控制器函数,details.php其中接受一个参数:

function details($id) {
    $this->datatables
         ->select('product_id, original_amount, quantity')
         ->from('orders');

    echo $this->datatables->generate();
}  

现在我需要从视图中调用它,即我希望 DataTables 像这样显示它:

<script>
$(document).ready(function() 
  $('#example').dataTable({
    ...
    'sAjaxSource' : 'admin/data/details',
    ...
  });
</script>

那么,如何将参数传递给sAjaxSource键,即$id变量?

4

2 回答 2

20

您应该fnServerParams按照文档中的说明使用。

$(document).ready(function() {
    $('#example').dataTable( {
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": "scripts/server_processing.php",
        "fnServerParams": function ( aoData ) {
            aoData.push( { "name": "more_data", "value": "my_value" } );
        }
    } );
} );
于 2013-06-18T17:23:41.990 回答
3

我自己也在努力解决这个问题。约翰摩西的答案对我不起作用,他提供的链接也对我来说是新文档的链接,我认为这并不适用于旧版本的数据表。

虽然,我发现当前的服务器端处理像 jQuery 一样工作,其中带有“sAjaxSource”的旧版本不能那样工作。

对我来说,我只是简单地将我的参数添加到sAjaxSource. 所以在你的示例代码中:

$customPHPvar = "mycustomvar";

<script>
$(document).ready(function() {
    $('#example').dataTable( {
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": "scripts/server_processing.php?customvar=<?php echo $customPHPvar; ?>",
    } );
} );
</script>

在 server_processing.php 中

$_GET['customvar'];
于 2014-05-19T15:06:06.863 回答