带有选择选项的数据表过滤在 php ajax 中不起作用

问题描述

我在数据表中有多个基于 ajax jquery PHP 的选择选项过滤。它正在正确过滤记录,但更改选择选项过滤后会显示一条警报消息,底部计数显示不正确。

注意:-

(1)数据表下方的计数未正确显示

(2) 显示一条警报消息。

这是带有记录和选择选项过滤器的数据表。

enter image description here

选择选项后会显示一条错误提示消息。

enter image description here

选择选择选项后过滤完成但底部计数错误

enter image description here

HTML 代码:-

<div class="col-md-12">
<form name="search_form" id="search_form" method="POST"> 
          
 <div class="col-md-3">
                <div class="formrow">
                  <select class="form-control select_filter" name="job_title" >
                    <option value ='' disabled selected>Job Title</option>
                    <option>PHP Developer</option>
                    <option>Android Developer</option>
                  </select>
                </div>
              </div>
              
  <div class="col-md-3">
                <div class="formrow">
                  <select class="form-control select_filter" name="emp_status" >
                    <option value ='' disabled selected>Employment Status</option>
                    <option>Permanant</option>
                    <option>Contract</option>
                    <option>Freelance</option>
                  </select>
                </div>
              </div>
              
                      
          
         
     <div class="col-md-3">
                <div class="formrow">
                  <select class="form-control select_filter" name="experience" >
                    <option value ='' disabled selected>Experience</option>
                    <option>Fresher</option>
                    <option>1 Year</option>
                    <option>2 Years</option>
                    <option>3 Years</option>
                    <option>4 Years</option>
                    <option>5 Years</option>
                    <option>6 Years</option>
                    <option>7 Years</option>
                    <option>8 Years</option>
                    <option>9 Years</option>
                    <option>10 Years</option>
                  </select>
                </div>
              </div>
</form>
 </div>


        
    
      <div class="row">
      <div class="col-xs-12">
          <div class="Box Box-danger">
            <div class="Box-body table-responsive">
              <table id="example" class="table-bordered table-striped table-hover">
                <thead>
                <tr>
                  <th>S.No</th>
                  <th>Company name</th>
                 <th>Company email</th>
                  <th>Company mobile</th>
                    <th>Company address</th>
                     <th>Job title</th>
                      <th>Industry</th>
                       <th>Salary</th>
                        <th>Employment Type</th>
                         <th>No. Of Positions</th>
                          <th>Experience</th>
                     <th>Job Description</th>
                 <th>Status</th>
                  <th>Action</th>
                </tr>
                </thead>
                <tbody id="projects">
  </tbody>
</table>
</div>
 </div>
</div>
 </div>

ajaxCompany_search.PHP

<?PHP
include('../../config.PHP');
print_r($_POST);
?>

jQuery / Ajax 代码:-

 <script type="text/javascript" rel="stylesheet">
 $(document).ready(function(){

 $('.select_filter').on('change',function(){
       
      $.ajax({
           type: "POST",url: "ajaxCompany_search.PHP",data: $('#search_form').serialize(),// You will get all the select data..
            success:function(data){
    
         var data = $(data);
         datatable.clear().rows.add(data).draw();
             
    }
        });
  });
  });

  
      var datatable = $('#example').DataTable({
    dom: 'Bfrtip',buttons: [
      'copy','csv','excel','pdf','print'
    ]
  });

解决方法

从 ajax 响应添加 HTML 时,您的数据表未绑定,您必须删除数据表 js 并将其重新分配给选择器,然后它才能正常工作。 或者在ajax发送响应的页面上使用数据表选择器创建整个表,然后用您当前的HTML替换整个表。

从这里获取参考 https://datatables.net/reference/option/ajax