datatables使用総括編

109356 ワード

<!doctype html>

<html>

<head>

    <meta charset="gbk"/>

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <meta http-equiv="X-UA-Compatible" content="IE=edge" ,Chrome=1">

    <meta http-equiv="X-UA-Compatible" content="IE=9"/>

    <!--boostrap-->

    <link href="<?php echo base_url(); ?>static/bootstrap/css/bootstrap.min.css" rel="stylesheet">

    <script src="<?php echo base_url(); ?>static/bootstrap/js/jquery.min1.9.1.js"></script>

    <script src="<?php echo base_url(); ?>static/bootstrap/js/bootstrap.min.js"></script>



    <script src="<?php echo base_url(); ?>static/datatables/jquery.dataTables.min.js"></script>

    <link href="<?php echo base_url(); ?>static/datatables/dataTables.bootstrap.css" rel="stylesheet">

    <script src="<?php echo base_url(); ?>static/datatables/dataTables.bootstrap.js"></script>



    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->

    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->

    <!--[if lte IE 9]>

    <script src="<?php echo base_url(); ?>static/iejs/respond.min.js"></script>

    <script src="<?php echo base_url(); ?>static/iejs/html5shiv.min.js"></script>

    <![endif]-->

    <link href="<?php echo base_url(); ?>static/mycss/mycss.css" rel="stylesheet">

    <link href="<?php echo base_url(); ?>static/mycss/admins.css" rel="stylesheet">

    <title>      </title>



</head>

<body>

<div class="container">

    <!--<div class="row">

        <div>

            <ul class="nav nav-tabs">

                <li class="active"></li>

            </ul>

        </div>

    </div>-->

    <div class="row">

        <div class="panel panel-info">

            <div class="panel-heading"><h3 class="panel-title">    </h3></div>

            <div class="panel-body">

                <form class="form-inline" role="form">

                    <div class="btn-group" data-toggle="buttons">

                        <label class="btn btn-default active">

                            <input type="radio" name="works" id="works_all" value="works_all">  

                        </label>

                        <label class="btn btn-default">

                            <input type="radio" name="works" value="zs" id="works_zs">  

                        </label>

                        <label class="btn btn-default">

                            <input type="radio" name="works" value="sr" id="works_sr">  

                        </label>

                        <label class="btn btn-default">

                            <input type="radio" name="works" value="jh" id="works_jh">  

                        </label>

                        <label class="btn btn-default">

                            <input type="radio" name="works" value="gs" id="works_gs">  

                        </label>

                        <label class="btn btn-default">

                            <input type="radio" name="works" value="ms" id="works_ms">  

                        </label>

                        <label class="btn btn-default">

                            <input type="radio" name="works" value="tm" id="works_tm">  

                        </label>

                        <label class="btn btn-default">

                            <input type="radio" name="works" value="yl" id="works_yl">  

                        </label>

                        <label class="btn btn-default">

                            <input type="radio" name="works" value="ykt" id="works_ykt">   

                        </label>

                    </div>

                    <div class="form-group">

                        <label for="condition">    :</label>

                        <select name="condition" id="condition" class="form-control">

                            <option value="">    </option>

                            <option value="order_num">    </option>

                            <option value="dinghuo_tel">     </option>

                            <option value="dinghuo">    </option>

                            <option value="order_time">    </option>

                            <option value="fahuo_time">    </option>

                            <option value="wuliu_num">    </option>



                        </select>

                    </div>

                    <div class="form-group">

                        <input type="text" class="form-control" id="condition_val" name="condition_val">

                    </div>



                    <div class="form-group">

                        <button type="button" id="btn_search" class="btn btn-primary" data-loading-text="   ......">   

                        </button>

                    </div>





                </form>

            </div>

        </div>



    </div>

    <div class="row">

        <div id="alert_dialog"></div>

    </div>

    <!--class="table table-striped table-bordered table-hover table-full-width" -->

    <div class="row">

        <!--

        <button class="btn btn-default" id="visible">   </button>

        <button class="btn btn-default" id="get_checkbox">     </button>

        <button class="btn btn-default" id="get_checkbox">   </button>-->

        <button class="btn btn-default" id="delete_order">   </button>

        <button class="btn btn-default" id="page_fresh">   </button>

    </div>

    <br>



    <div class="row">

        <table id="example" class="table table-striped table-bordered" cellpadding="0" border="0" cellspacing="0"

               width="100%">

            <thead>

            <tr>

                <th><input type="checkbox" id="checkAll"></th>

                <th>    </th>

                <th>   </th>

                <th>   </th>

                <th>     </th>

                <th>     </th>

                <th>    </th>

                <th>   </th>

                <th>    </th>

            </tr>

            </thead>



            <tfoot>

            <tr>

                <th></th>

                <th>    </th>

                <th>   </th>

                <th>   </th>

                <th>     </th>

                <th>     </th>

                <th>    </th>

                <th>   </th>

                <th>    </th>

            </tr>

            </tfoot>

        </table>

    </div>



    <!--    (Modal) -->

    <div class="modal fade" id="myModal" tabindex="-1" role="dialog"

         aria-labelledby="myModalLabel" aria-hidden="true">

        <div class="modal-dialog">

            <div class="modal-content">

                <!--<div class="modal-header">

                    <button type="button" class="close" data-dismiss="modal"

                            aria-hidden="true">×

                    </button>

                    <h4 class="modal-title" id="myModalLabel">

                           (Modal)  

                    </h4>

                </div>-->

                <div class="modal-body">

                             

                </div>

                <div class="modal-footer text-center">

                    <button type="button" class="btn btn-default" id="yes_delete" data-dismiss="modal">

                         

                    </button>

                    <button type="button" class="btn btn-primary" data-dismiss="modal">

                         

                    </button>

                </div>

            </div>

            <!-- /.modal-content -->

        </div>

        <!-- /.modal-dialog -->

    </div>

    <!-- /.modal -->



    <!--    (Modal) -->

    <div class="modal fade" id="check_data" tabindex="-1" role="dialog"

         aria-labelledby="myModalLabel" aria-hidden="true">

        <div class="modal-dialog">

            <div class="modal-content">

                <div class="modal-body text-center">

                    <h4>      </h4>

                </div>

                <div class="modal-footer">

                    <button type="button" class="btn btn-default"

                            data-dismiss="modal">

                          

                    </button>

                </div>

            </div>

            <!-- /.modal-content -->

        </div>

        <!-- /.modal-dialog -->

    </div>

    <!-- /.modal -->



</div>

<script type="text/javascript" src="<?php echo base_url(); ?>static/datatables/jquery.jeditable.mini.js"></script>

<script type="text/javascript">

    $(document).ready(function () {

        datatable = $('#example').DataTable({

            "processing": true,

            "bSort": false,

            "serverSide": true,

            "ajax": {

                "type": "post",

                "url": "<?php echo site_url();?>/admins/adminindex/get_datatable_data",

//                "url": "http://datatables.net/examples/server_side/scripts/jsonp.php",

                "dataType": "json"

            },

            "columnDefs": [

                {

                    targets: 0,

                    "render": function (data, type, rowdata, meta) {

                        return "<input type=\"checkbox\" name='order_checkbox' class='order_checkbox' value=" + data + '|' + rowdata.shouhuo_tel + ">";

                    }

                },

                {

                    targets: 7,

                    "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {

                        $(nTd).addClass('inputTd').attr('id', oData.id + '_' + oData.shouhuo_tel);

                    }

                }

            ],

            "columns": [

                {"data": "id", "orderable": false},

                {"data": "order_num", width: '60px', "orderable": false},

                {"data": "dinghuo", width: '60px'},

                {"data": "shouhuo", width: '60px'},

                {"data": "dinghuo_tel", width: '60px'},

                {"data": "shouhuo_tel", width: '60px'},

                {"data": "shangpin", width: '200px'},

                {"data": "work", width: '40px'},

                {"data": "songhuo_addr"}

            ],



            //      

            "fnCreatedRow": function (nRow, aData, iDataIndex) {

                //add selected class

                //console.info(nRow);

                $(nRow).click(function () {

                    if ($(this).hasClass('row_selected')) {

                        $(this).removeClass('row_selected');

                    } else {

                        $('tr.row_selected').removeClass('row_selected');

                        //$(this).addClass('row_selected');

                    }

                });

            },

            //    

            "language": {

                "processing": "     ...",

                "lengthMenu": "   _MENU_    ",

                "zeroRecords": "      ",

                "info": "    _START_   _END_    ,  _TOTAL_  ",

                "infoEmpty": "    0   0    ,  0  ",

                "infoFiltered": "(  _MAX_      )",

                "infoPostFix": "",

                "search": "  :",

                "url": "",

                "paginate": {

                    "first": "  ",

                    "previous": "  ",

                    "next": "  ",

                    "slast": "  "

                }

            },

            initComplete: function () {

                var api = this.api();

                var columns_indexes = api.columns().indexes().flatten();



                api.columns().indexes().flatten().each(function (i) {

                    var column = api.column(i);



//                    console.info(column.header());

//                    console.info(column);

                });



            },

            "fnDrawCallback": function (data, x) {

                $('#example tbody td.inputTd').editable("<?php echo site_url();?>/admins/adminindex/edit_order", {

                    indicator: '<img src="<?php echo base_url();?>/static/images/loading.gif">',

                    tooltip: '    ',

                    //onblur : 'ignore',

                    callback: function (value, settings) {

                        if(value=='ok'){

                            datatable_fresh();

                        }else {

                            alert('    ');

                        }

                    },

                    submit: '<span style="cursor: pointer">  </span>'

                });

            }

        });



        //xhr  http://datatables.net/reference/event/xhr

        datatable.on('xhr.dt', function (e, settings, json) {

            // console.info(json);



        });





        //    ajax.url

        /*datatable.ajax.url("http://datatables.net/examples/server_side/scripts/jsonp.php").load();

         datatable.ajax.dataType ="jsonp";*/



        //    

        $('#example tbody').on('click', 'tr', function () {

            var name = $('td', this).eq(0).text();



            var index = $(this).context._DT_RowIndex; //  

//            console.info($(this).context);

            //     

            //console.info(datatable.row(this).data());

            //alert('     ' + name + '  ' + index);

        });



//               

        //alert($(".btn-group label.active input").val());

        $("#btn_search").click(function () {



            var works = $(".btn-group label.active input").val();

            var condition = $("#condition").val();

            var condition_val = $("#condition_val").val();

            if (!condition && condition_val) {

                alert("      ");

                return false;

            }



            var jsons = {"works": works, "condition": condition, "condition_val": condition_val};

            //datatable.settings()[0].ajax.data={"name":"hubing"};

            datatable.settings().context[0].ajax.data = jsons;



            datatable.on(

                'xhr.dt', function (e, settings, json) {

                    if (json.data[0]) {

                        //alert('ok');

                    } else {

                        //alert('nook');

                    }

                    //      

                    $("#btn_search").button('reset');

                }

            ).ajax.url("<?php echo site_url();?>/admins/adminindex/get_datatable_data").load();



            $(this).button('loading').delay(1000).queue(function () {

                $(this).button('reset');

            });

        });





    });





    //       

    $("#visible").on('click', function (e) {

        e.preventDefault();



        var column = datatable.column(8);

        column.visible(!column.visible());

    });





    //      

    $("#delete_order").on('click', function (e) {

        e.preventDefault();



        var gc = get_checkbox();



        if (gc) {

            $('#myModal').modal('show');

            gc = JSON.stringify(gc);

            $('#yes_delete').unbind("click").on('click', function () {

                $.post('<?php echo site_url();?>/admins/adminindex/delete_order', {"delete_order": gc}, function (back) {

                    if(back) {

                        $('#alert_dialog').html("<div class='alert alert-info'><a href='#' class='close' data-dismiss='alert'>&times;</a><strong>"+back+"       !</strong></div>");

                    }else {

                        $('#alert_dialog').html("<div class='alert alert-warning'><a href='#' class='close' data-dismiss='alert'>&times;</a><strong>!</strong>      。</div>");

                    }

                    datatable_fresh();

                });

            })

        }



    });





    $("#get_checkbox").on('click', function (e) {

        e.preventDefault();

        var gc = get_checkbox();

        alert(gc);

    });





    //        

    function get_checkbox() {

        var checkbox = new Array();

        $("input[name='order_checkbox']").each(function () {

            if (this.checked) {

                checkbox.push($(this).val());

            }

        });



        if (!checkbox[0]) {

            //alert('     ');

            $('#check_data').modal('show');

            return false;

        } else {

            return checkbox;

        }

        //console.info(checkbox);

    }





    //    

    $("#checkAll").click(function () {

            if (this.checked) {

                $("input[name='order_checkbox']").each(function () {

                    this.checked = true;

                });

            } else {

                $("input[name='order_checkbox']").each(function () {

                    this.checked = false;

                });

            }

        }

    );



    //    

    $("#page_fresh").click(function () {



        datatable_fresh();



    });



    //      

    function datatable_fresh() {

        datatable.ajax.reload(null, false);

    }







</script>

</body>

<style type="text/css">

    .row_selected {

        background: red;

    }

</style>



</html>