0

DataTables列フィルターアドオンをデータテーブルに追加しました。フッターに列検索フィールドが表示されます。しかし、「処理」を入力すると、短時間は実行されますが、結果は更新されません。つまり、フィルタリングされます。

バックエンドでcodeIgnitersignitedDatatablesを使用しています。他のすべては正常に機能します(ページネーション、右上のグローバル検索)。フィルターが機能するために他の何かを構成する必要があるかどうかは、ネット上でわかりませんでした。

これが私の見解です-

<html>
<head>
    <link rel="stylesheet" type="text/css" href="http://localhost/eshop/css/admin/style.css" />

    <script type="text/javascript" language="javascript" src="<?php echo base_url() ?>js/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" language="javascript" src="<?php echo base_url() ?>js/jquery.dataTables.min.js"></script>
    <script type="text/javascript" language="javascript" src="<?php echo base_url() ?>js/jquery.dataTables.columnFilter.js"></script>


    <link rel="stylesheet" type="text/css" href="<?php echo base_url() ?>css/jquery.dataTables_themeroller.css"/>

    <link rel="stylesheet" href="http://localhost/eshop/css/admin/smoothness/jquery-ui-custom.css"/>

    <script>

        $(document).ready(function() {   
            $('#data_table').dataTable( {
                "bProcessing": true,
                "bServerSide": true,
                "bJQueryUI": true,           
                "sPaginationType": "full_numbers",
                "sAjaxSource": "<?php echo base_url() ?>grid/getCustomers"
            } ).columnFilter(
            {
                aoColumns: [
                    {
                        type: "number"
                    },
                    {
                        type: "text",
                        bRegex: true,
                        bSmart: true
                    },
                    null
                ]
            }
        );

        } );

    </script>

</head>
<body>
    <div class="widget_body">
        <table id="data_table" class="data_table">
            <thead>
                <tr>
                    <th>ID</th>
                    <th>First Name</th>
                    <th>Last Name</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td></td>
                    <td></td>
                    <td></td>
                </tr>
            </tbody>
            <tfoot style="background-color: whitesmoke;">
                <tr>
                    <th></th>
                    <th></th>
                    <th></th>
                </tr>
            </tfoot>
        </table>
    </div>
</body>

私のコントロール

//display
public function index()
{
    $this->load->view('datatableview');
}

//ajax request handler
public function getCustomers()
{
    $this->load->library('datatables');

    $this->datatables->select('id,first_name,last_name')
            ->from('data_table');
    echo $this->datatables->generate();


}

前に言ったように、IDと名の下部に2つの入力ボックスが表示されますが、ボックスに入力すると表示の変化がわかりません。

2列目の入力ボックスに「Bjo」と入力すると、見つかったfirebugからのgetリクエストは次のようになります。

_=1354249241305
bRegex=false
bRegex_0=false
bRegex_1=true
bRegex_2=false
bSearchable_0=true
bSearchable_1=true
bSearchable_2=true
bSortable_0=true
bSortable_1=true
bSortable_2=true
iColumns=3
iDisplayLength=10
iDisplayStart=0
iSortCol_0=0
iSortingCols=1
mDataProp_0=0
mDataProp_1=1
mDataProp_2=2
sColumns=
sEcho=22
sRangeSeparator=~
sSearch=
sSearch_0=
sSearch_1=Bjo
sSearch_2=
sSortDir_0=asc

応答が見つかりました

{"sEcho":22,"iTotalRecords":30,"iTotalDisplayRecords":30,"aaData":[["1","Shabab","Haider"],["2","Anas","Numan"],["3","Bjoy","Manik"],["4","Bjoy","Manik"],["5","Bjoy","Manik"],["6","Bjoy","Manik"],["7","Bjoy","Manik"],["8","Bjoy","Manik"],["9","Bjoy","Manik"],["10","Bjoy","Manik"]],"sColumns":"id,first_name,last_name"}

編集:私がそのアドオンを使用してからしばらく経ちました。githubでフィルタリングコードを使用してブランチを作成しました。しかし、それはいくつかのテストが必要です。時間があるときに自分でテストします-その間、誰かが親愛なることを望み、他の人のためにそれをしたい場合-

https://github.com/shababhsiddique/Ignited-Datatables/blob/Branche_Column_Filter/application/libraries/Datatables.php

これが私がずっと前に使った実際のコードです。それがあなたのバージョンで動作するかどうかその非常に古いチェックアウト

https://drive.google.com/file/d/0BzKzAVzAWPRgcmNCbGhnU3pqaW8/view?usp=sharing
4

1 に答える 1

0

json生成ライブラリに問題があると思いました。

点火されたdatatablesライブラリは不完全です。私は彼らのライブラリを次のように変更しなければなりませんでした

私が行ったすべての変更(かなりの数があります)を覚えていませんが、すべての入力->入力->投稿に変更し、すべての$_GETを$_POSTに変更したことを覚えています

私もこの関数を変更したと思います

protected function get_filtering()

これは私が使用している現在編集されているライブラリです-

{ http://162.212.134.58/shabab/Datatables.zip }

あなたのライブラリを私のものと一致させて調べることができます。

私はまだ最新のデータテーブルに更新していません。

于 2013-05-18T10:02:05.917 に答える