Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么Ajax数据表中的实时搜索在我的代码中不起作用?_Javascript_Php_Ajax_Codeigniter_Datatables - Fatal编程技术网

Javascript 为什么Ajax数据表中的实时搜索在我的代码中不起作用?

Javascript 为什么Ajax数据表中的实时搜索在我的代码中不起作用?,javascript,php,ajax,codeigniter,datatables,Javascript,Php,Ajax,Codeigniter,Datatables,我曾尝试在代码中实现ajax datatable,它运行良好,但当我尝试在表中实现实时搜索时,它不起作用 当我查看inspect元素->网络时,ajax正在工作,但它没有根据我的搜索过滤数据,请帮助我找到解决方案 这是我的控制器代码: function ums_permission_datatable_ajax(){ // Datatables Variables $draw = intval($this->input->post("draw")

我曾尝试在代码中实现ajax datatable,它运行良好,但当我尝试在表中实现实时搜索时,它不起作用 当我查看inspect元素->网络时,ajax正在工作,但它没有根据我的搜索过滤数据,请帮助我找到解决方案

这是我的控制器代码:

function ums_permission_datatable_ajax(){   
        // Datatables Variables
        $draw = intval($this->input->post("draw"));
        $start = intval($this->input->post("start"));
        $length = intval($this->input->post("length"));
                $search = $this->input->post("search");
        $order = $this->input->post("order");

        $col = 0;
        $dir = "";
        if(!empty($order)) {
            foreach($order as $o) {
                $col = $o['column'];
                $dir= $o['dir'];
            }
        }
        if($dir != "asc" && $dir != "desc") {
            $dir = "asc";
        }
        $columns_valid = array(
            "ums_permissions.name", 
            "ums_permissions.function", 
            "ums_permissions.display", 
            "ums_permissions.description", 
            "ums_permissions.system",
        );
        if(!isset($columns_valid[$col])) {
            $order = null;
        } else {
            $order = $columns_valid[$col];
        }
        $orderby[$order] = $dir;

        $total_records = $this->Ums_permissions_model->count();
        //echo '<pre>';print_r($orderby);die;
        $ums_permissions = $this->Ums_permissions_model->retrieve(array(), $length, $start, $orderby);
        //echo $this->db->last_query();die;
        $data = array();
        foreach($ums_permissions as $row) {
            $data[] = array(
                $row->name,                   
                $row->function,             
                $row->display,
                $row->description,
                $row->system,  
                "<a data-toggle='tooltip' data-placement='top' title='Edit' href='".site_url('ums_permissions/add_edit/').$row->id."' class='btn btn-white btn-sm'><i class='fa fa-pencil-square-o fa-fw'></i></a>
                <a data-toggle='tooltip' href='#'  title='Delete' class='btn btn-white btn-sm' role='button' id='delete_wpa_death1' data-deleteid='$row->id'><i class='fa fa-trash fa-fw'></i></a>",
            );
        }
        $output = array("draw" => $draw,"recordsTotal" => $total_records,"recordsFiltered" => $total_records,"data" => $data);  
        echo json_encode($output);
        exit();
    }
函数ums\u权限\u数据表\u ajax(){
//数据表变量
$draw=intval($this->input->post(“draw”);
$start=intval($this->input->post(“start”);
$length=intval($this->input->post(“长度”);
$search=$this->input->post(“搜索”);
$order=$this->input->post(“订单”);
$col=0;
$dir=“”;
如果(!空($order)){
foreach($o订单){
$col=$o[“列”];
$dir=$o['dir'];
}
}
如果($dir!=“asc”&&$dir!=“desc”){
$dir=“asc”;
}
$columns\u valid=数组(
“ums_权限.名称”,
“ums_permissions.function”,
“ums_权限。显示”,
“ums_权限。说明”,
“ums_permissions.system”,
);
如果(!isset($columns\u valid[$col])){
$order=null;
}否则{
$order=$columns\u有效[$col];
}
$orderby[$order]=$dir;
$total_records=$this->Ums_permissions\u model->count();
//echo'';print_r($orderby);die;
$(document).ready(function() {
                    $("#dataTables").on("preInit.dt", function(){

                     $("#dataTables_wrapper input[type='search']").after("<button type='button' id='btnexample_search'></button>");
                   });                  
            $.fn.dataTable.moment('DD/MM/YYYY');  
            $('.dataTables').dataTable({
                iDisplayLength: 50,
                "initComplete":function(){onint();},
                "processing": true,
                "serverSide": true,
                "ajax": {
                    url : "<?php echo site_url("ums_permissions/ums_permission_datatable_ajax") ?>",
                    type : 'POST',
                    "data": function(d) {
                       var frm_data = $('form').serializeArray();
                       $.each(frm_data, function(key, val) {
                         d[val.name] = val.value;
                       });
                       var searchValue = d.search.value;
                       return d;
                     }
                },
            }); 
        });
        function onint(){  
         // take off all events from the searchfield
         $("#dataTables_wrapper input[type='search']").off();
         // Use return key to trigger search
         $("#dataTables_wrapper input[type='search']").on("keydown", function(evt){
              if(evt.keyCode == 13){
                $("#dataTables").DataTable().search($("input[type='search']").val()).draw();
              }
         });
         $("#btnexample_search").button().on("click", function(){
               $("#dataTables").DataTable().search($("input[type='search']").val()).draw();

         });
       }
$ums\u permissions=$this->ums\u permissions\u model->retrieve(数组(),$length,$start,$orderby); //echo$this->db->last_query();die; $data=array(); foreach($ums\u权限为$row){ $data[]=数组( $row->name, $row->function, $row->display, $row->description, $row->system, " ", ); } $output=array(“draw”=>$draw,“recordsTotal”=>$total\u records,“recordsFiltered”=>$total\u records,“data”=>$data); echo json_编码($output); 退出(); }
这是我的Js代码:

$(文档).ready(函数(){
$(“#dataTables”).on(“preInit.dt”,function(){
$(“#dataTables_包装器输入[type='search']”)。在(“”)之后;
});                  
$.fn.dataTable.moment('DD/MM/YYYY');
$('.dataTables').dataTable({
i显示长度:50,
“initComplete”:函数(){onint();},
“处理”:对,
“服务器端”:正确,
“ajax”:{
url:“”,
键入:“POST”,
“数据”:功能(d){
var frm_data=$('form').serializeArray();
$。每个(frm_数据、函数(键、值){
d[val.name]=val.value;
});
var searchValue=d.search.value;
返回d;
}
},
}); 
});
函数onint(){
//从searchfield中删除所有事件
$(“#dataTables_包装器输入[type='search']”)。off();
//使用返回键触发搜索
$(“#dataTables_wrapper input[type='search']”)。on(“keydown”,函数(evt){
如果(evt.keyCode==13){
$(“#dataTables”).DataTable().search($($input[type='search']).val()).draw();
}
});
$(“#b示例搜索”).button()。在(“单击”,函数()上){
$(“#dataTables”).DataTable().search($($input[type='search']).val()).draw();
});
}

您必须在服务器端执行所有搜索和筛选。 对于搜索/筛选或页面的每个请求,datatable将所有这些作为表单数据传递给服务器页面。参考 您必须使用此表单数据对sql表上的记录进行筛选/搜索/分页,并将其相应地传递给客户端。
datatable只显示它从服务器获取的信息。

您必须在服务器端执行所有搜索和筛选。 对于搜索/筛选或页面的每个请求,datatable将所有这些作为表单数据传递给服务器页面。参考 您必须使用此表单数据对sql表上的记录进行筛选/搜索/分页,并将其相应地传递给客户端。
datatable只显示它从服务器获取的内容。

您已经定义了
$search=$this->input->post(“search”)
但是你什么都不做是的,起初我想用sql query手动过滤,但是当表中有大量数据时,它是无效的,所以我决定在服务器端进行过滤,它不起作用。你已经定义了
$search=$this->input->post(“search”)
但是你什么都不做是的,起初我想用sql query手动过滤,但是当表中有大量数据时,它是无效的,所以我决定在服务器端进行过滤,但它不起作用