微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

设置 HTML 表格内容而不是 Ajax

如何解决设置 HTML 表格内容而不是 Ajax

我正在尝试向 html 表格添加高级搜索。 到目前为止,使用 Datatable.js 我设法实现了常规搜索,但是在我使用的主题中,我无法直接从我的 html 中读取信息。 在我在高级搜索主题中使用的 Js 中,表格的内容直接从外部 PHP 文件加载,而不是所需表格实际所在的 html。

如何从我的 HTML 表加载内容而不是从 url 加载 js(Ajax 行)?

JS

"use strict";
var KTDatatablesSearchOptionsAdvancedSearch = function() {

    $.fn.dataTable.Api.register('column().title()',function() {
        return $(this.header()).text().trim();
    });

    var initTable1 = function() {
        // begin first table
        var table = $('#kt_datatable').DataTable({
            responsive: true,// Pagination settings
            dom: `<'row'<'col-sm-12'tr>>
            <'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7 dataTables_pager'lp>>`,// read more: https://datatables.net/examples/basic_init/dom.html

            lengthMenu: [5,10,25,50],pageLength: 10,language: {
                'lengthMenu': 'display _MENU_',},searchDelay: 500,processing: true,serverSide: true,ajax: {
                url: HOST_URL + '/api//datatables/demos/server.PHP',type: 'POST',data: {
                    // parameters for custom backend script demo
                    columnsDef: [
                        'RecordID','OrderID','Country','ShipCity','CompanyAgent','ShipDate','Status','Type','Actions',],columns: [
                {data: 'RecordID'},{data: 'OrderID'},{data: 'Country'},{data: 'ShipCity'},{data: 'CompanyAgent'},{data: 'ShipDate'},{data: 'Status'},{data: 'Type'},{data: 'Actions',responsivePriority: -1},initComplete: function() {
                this.api().columns().every(function() {
                    var column = this;

                    switch (column.title()) {
                        case 'Country':
                            column.data().unique().sort().each(function(d,j) {
                                $('.datatable-input[data-col-index="2"]').append('<option value="' + d + '">' + d + '</option>');
                            });
                            break;

                        case 'Status':
                            var status = {
                                1: {'title': 'Pending','class': 'label-light-primary'},2: {'title': 'Delivered','class': ' label-light-danger'},3: {'title': 'Canceled','class': ' label-light-primary'},4: {'title': 'Success','class': ' label-light-success'},5: {'title': 'Info','class': ' label-light-info'},6: {'title': 'Danger',7: {'title': 'Warning','class': ' label-light-warning'},};
                            column.data().unique().sort().each(function(d,j) {
                                $('.datatable-input[data-col-index="6"]').append('<option value="' + d + '">' + status[d].title + '</option>');
                            });
                            break;

                        case 'Type':
                            var status = {
                                1: {'title': 'Online','state': 'danger'},2: {'title': 'Retail','state': 'primary'},3: {'title': 'Direct','state': 'success'},j) {
                                $('.datatable-input[data-col-index="7"]').append('<option value="' + d + '">' + status[d].title + '</option>');
                            });
                            break;
                    }
                });
            },columnDefs: [
                {
                    targets: -1,title: 'Actions',orderable: false,render: function(data,type,full,Meta) {
                        return '\
                            <div class="dropdown dropdown-inline">\
                                <a href="javascript:;" class="btn btn-sm btn-clean btn-icon" data-toggle="dropdown">\
                                    <i class="la la-cog"></i>\
                                </a>\
                                <div class="dropdown-menu dropdown-menu-sm dropdown-menu-right">\
                                    <ul class="nav nav-hoverable flex-column">\
                                        <li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-edit"></i><span class="nav-text">Edit Details</span></a></li>\
                                        <li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-leaf"></i><span class="nav-text">Update Status</span></a></li>\
                                        <li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-print"></i><span class="nav-text">Print</span></a></li>\
                                    </ul>\
                                </div>\
                            </div>\
                            <a href="javascript:;" class="btn btn-sm btn-clean btn-icon" title="Edit details">\
                                <i class="la la-edit"></i>\
                            </a>\
                            <a href="javascript:;" class="btn btn-sm btn-clean btn-icon" title="Delete">\
                                <i class="la la-trash"></i>\
                            </a>\
                        ';
                    },{
                    targets: 6,Meta) {
                        var status = {
                            1: {'title': 'Pending',};
                        if (typeof status[data] === 'undefined') {
                            return data;
                        }
                        return '<span class="label label-lg font-weight-bold' + status[data].class + ' label-inline">' + status[data].title + '</span>';
                    },{
                    targets: 7,Meta) {
                        var status = {
                            1: {'title': 'Online',};
                        if (typeof status[data] === 'undefined') {
                            return data;
                        }
                        return '<span class="label label-' + status[data].state + ' label-dot mr-2"></span>' +
                            '<span class="font-weight-bold text-' + status[data].state + '">' + status[data].title + '</span>';
                    },});

        var filter = function() {
            var val = $.fn.dataTable.util.escapeRegex($(this).val());
            table.column($(this).data('col-index')).search(val ? val : '',false,false).draw();
        };

        var asdasd = function(value,index) {
            var val = $.fn.dataTable.util.escapeRegex(value);
            table.column(index).search(val ? val : '',true);
        };

        $('#kt_search').on('click',function(e) {
            e.preventDefault();
            var params = {};
            $('.datatable-input').each(function() {
                var i = $(this).data('col-index');
                if (params[i]) {
                    params[i] += '|' + $(this).val();
                }
                else {
                    params[i] = $(this).val();
                }
            });
            $.each(params,function(i,val) {
                // apply search params to datatable
                table.column(i).search(val ? val : '',false);
            });
            table.table().draw();
        });

        $('#kt_reset').on('click',function(e) {
            e.preventDefault();
            $('.datatable-input').each(function() {
                $(this).val('');
                table.column($(this).data('col-index')).search('',false);
            });
            table.table().draw();
        });

        $('#kt_datepicker').datepicker({
            todayHighlight: true,templates: {
                leftArrow: '<i class="la la-angle-left"></i>',rightArrow: '<i class="la la-angle-right"></i>',});

    };

    return {

        //main function to initiate the module
        init: function() {
            initTable1();
        },};

}();

jQuery(document).ready(function() {
    KTDatatablesSearchOptionsAdvancedSearch.init();
});

HTML

<table class="table table-bordered table-hover table-checkable" id="kt_datatable">
                                            <thead>
                                                <tr>

                                                    <th>Record ID</th>
                                                    <th>Order ID</th>
                                                    <th>Country</th>
                                                    <th>Ship City</th>
                                                    <th>Company Agent</th>
                                                    <th>Ship Date</th>
                                                    <th>Status</th>
                                                    <th>Type</th>
                                                    <th>Actions</th>
                                                </tr>
                                            </thead>
                                            <tbody>
                                            <tr>
                                                    <th>2</th>
                                                    <th>sdfdsfs</th>
                                                    <th>sdf</th>
                                                    <th>sdfdsfsf</th>
                                                    <th>sdfsfsfsdfds</th>
                                                    <th>test</th>
                                                    <th>testtt</th>
                                                    <th>test</th>
                                                    <th>Actions</th>
                                                </tr>
                                                <tr>
                                                    <th>33</th>
                                                    <th>sdfdsfs</th>
                                                    <th>sdf</th>
                                                    <th>sdfdsfsf</th>
                                                    <th>sdfsfsfsdfds</th>
                                                    <th>test</th>
                                                    <th>testtt</th>
                                                    <th>test</th>
                                                    <th>testtttt</th>
                                                </tr>
                                            </tbody>
                                            <tfoot>
                                                <tr>
                                                    <th>Record ID</th>
                                                    <th>Order ID</th>
                                                    <th>Country</th>
                                                    <th>Ship City</th>
                                                    <th>Company Agent</th>
                                                    <th>Ship Date</th>
                                                    <th>Status</th>
                                                    <th>Type</th>
                                                    <th>Actions</th>
                                                </tr>
                                            </tfoot>
                                        </table>

解决方法

检查文件:html-table.js 来自:demo(n)\dist\assets\js\pages\crud\ktdatatable\base\html-table.js

有一个完整的例子来说明如何配置 KtDatatable。我认为您是从远程数据而不是 HTML 表中添加选项。 另一种方式是Local数据,但是数据在一个Js上作为一个对象

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。