YADCF +数据表服务器端填充选择与Php

时间:2017-01-06 14:05:48

标签: javascript php jquery datatables yadcf

我确实搜索了提到这个论点的每一页,但似乎无法想出这一点 我正在使用数据表与Yadcf,ajax源,server_side.php和ssp.class.php

现在我想用所有数据填充选择过滤器,而不仅仅是当前页面, 我看了看yadcf展示 - - > yadcf-showcase.appspot.com/server_side_source.html 唯一提到的是一个JQuery(java)部分来填充 yadcf_data_n

但是找不到一个例子来使用server_side.php和ssp.class.php来检索数据。

我(以及我在很多其他人身边看到的)对于如何存档这个

而言,真是太棒了。

我的数据表代码是:

  var oTable2;
  oTable2 = $('#example2').DataTable({
            "responsive": true,
            "processing": true,
            select: true,
            "serverSide":true,
            stateSave: true,
            "ajax": {
               "type" : "GET",
               "url":  "leadsdata.php",
               "data" :  function ( d ) {
                d.var1=var1;
                   }

            },
            "columns": [{
                "data":"test",
                "mRender": function ( client_id, type, full )  {
                return  '<a href="clickme.php?id='+Base64.encode(client_id)+'"> GO</a>';
                }
        },{
                "data": 1
        },{
                "data": 2
        },{
                "data": 3
        },{
                "data": 4               
        },{
                "data": 5
        },{
                "data": 6

  }],
            "language": {
               "infoFiltered": ".",
               "info": "_START_ : _END_ nga _TOTAL_ nominativ"
             }

   });

    yadcf.init(oTable2, [{
            column_number: 1,
                  filter_type: "text",
                  filter_delay: 200
            }, {
            column_number: 2,
                  filter_type: "text",
                  filter_delay: 200
            }, {
            column_number: 3
            }, {
            column_number: 4,
                filter_type: "text",
                filter_delay: 200   
            }, {
            column_number: 5

            }, {
            column_number: 6

            }]);

    });

使用默认的server_side.php Click here to show

和默认的ssp.class.php Click here to show

欢迎使用此设置填写yadcf_data_n#的任何示例代码

1 个答案:

答案 0 :(得分:2)

对于对同一主题感兴趣的人

感谢vedmack(YADCF)作者的帮助,我找到了完美的解决方案:

修改部件:

    echo json_encode(
    SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
);

为:

$data=SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns, $joinQuery, $extraWhere );

$db = SSP::sql_connect( $sql_details );
$stmt3 = $db->prepare( 'SELECT DISTINCT(value) FROM esito' );
$stmt3->execute();
$data['yadcf_data_3'] = $stmt3->fetchAll(PDO::FETCH_COLUMN, 0);

$stmt5 = $db->prepare( 'SELECT DISTINCT(value2) FROM table' );
$stmt5->execute();
$data['yadcf_data_5'] = $stmt5->fetchAll(PDO::FETCH_COLUMN, 0);

$stmt6 = $db->prepare( 'SELECT DISTINCT(value3) FROM table' );
$stmt6->execute();
$data['yadcf_data_6'] = $stmt6->fetchAll(PDO::FETCH_COLUMN, 0);


echo json_encode($data);

因此我们为每个选择字段进行自定义查询(在我的情况下,我有3个) 并重新包含$ db,因为我将ssp.class.php放在不同的文件中

希望有所帮助