【问题标题】:How to send custom data to DataTable server-side processing not from DataTable's filter input?如何将自定义数据发送到 DataTable 服务器端处理而不是来自 DataTable 的过滤器输入?
【发布时间】:2023-03-28 20:15:01
【问题描述】:

在我的页面中有一组四个字段来自定义数据库中的记录search;结果将显示在DataTable 中,该DataTable 显示在这些字段组下方:

这是 DataTable 的 javascript 创建:

<script type="text/javascript">
$(document).ready(function() {

    var j_table = $("#t_list").dataTable( {

        "oLanguage"     : {
                            "sInfoThousands": " ",
                            "sEmptyTable"   : _getText("datatable_resultat_zero", "global"),
                            "sInfo"         : _getText("datatable_zone_statut_info", "global"),
                            "sInfoEmpty"    : "",
                            "sInfoFiltered" : _getText("datatable_zone_statut_filtre", "global"),
                            "sLengthMenu"   : _getText("datatable_zone_nb_affichage", "global"),
                            "sSearch"       : _getText("datatable_zone_filtre", "global"),
                            "sZeroRecords"  : _getText("datatable_resultat_zero", "global"),
                            "oPaginate"     : {
                                                "sPrevious" : _getText("datatable_btn_prcdt", "global"),
                                                "sNext"     : _getText("datatable_btn_svt", "global")
                                              }
                        },

        "sPaginationType"   : "bootstrap",

        "aoColumnDefs": [
                         { "aTargets": [ 3 ], "bSortable": false },
                         { "aTargets": [ 3 ], "bSearchable": false },
                         {
                             "aTargets": [ 3 ],
                             "mRender": function ( data, type, full ) {
                               return '<div style="text-align: center;"><a href="<?php echo site_url('meeting/modif'); ?>/'+data+'" title="Modifier"><button class="btn btn-mini">Detail</button></a></div>';
                             }
                         }
                       ],

        "bServerSide": true,

        "sAjaxSource": "<?php echo site_url('ajax/dataTableListerMeetingNotes'); ?>",

        "sServerMethod": "POST"

    } );

});
</script>

那么当点击“Valider”蓝色按钮时,如何将四个字段中输入的值传递给DataTable的ajax源呢?以及如何在DataTable的ajax调用的script中收集这些数据?

【问题讨论】:

    标签: jquery codeigniter datatable


    【解决方案1】:

    使用fnServerParams。

    将此添加到您的初始化代码中,每次调用fnDraw()时,都会在数据表请求中传递参数。显然,您必须更改 jquery 选择器以匹配您的输入 ID。

    "sServerMethod": "POST",
    "fnServerParams": function (aoData) {
        aoData.push({ "name": "sujet", "value": $('#Sujet').val() });
        aoData.push({ "name": "lieu", "value": $('#Lieu').val() });
        aoData.push({ "name": "dateDu", "value": $('#DateDu').val() });
        aoData.push({ "name": "dateAu", "value": $('#DateAu').val() });
    },
    

    在Valider按钮点击事件中调用j_table.fnDraw()

    在服务器端,您访问参数的方式与标准数据表参数相同,即从查询字符串中获取:

    $_POST['sujet']
    

    我对 PHP 不熟悉,但应该是这样的。

    【讨论】:

      猜你喜欢
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多