2017-05-29 47 views
0

我正在使用数据表进行列表。现在我想在几个定义过滤器的基础上过滤一些记录。ajax成功响应后数据表重新加载

我已经完成了使用ajax的过滤器我在过滤器的基础上创建了一个新的响应并替换了数据表的响应表,并且一切工作正常。

但问题是在完成了所有数据表默认搜索框和排序不工作后。见下面的代码。

jQuery代码:

//Search data from quarter 
$("body").delegate("#period","change",function(){ 
    var customer_id = $("#customer").val(); 
    var quarter = $("#period").val(); 
    var _token = $('input[name="_token"]').val(); 
    //if(quarter !=''){ 
     $("#ajax_loader_content").text("Please wait..."); 
     $("#ajax_loader").removeClass("hide"); 
     $.ajax({ 
      url: "{{ url('/appraisal-search') }}", // routing 
      type: "POST", 
      data: {_token: _token, customer_id: customer_id, quarter: quarter }, 
      success: function(res) { 
       $("#ajax_loader").addClass("hide"); 
       if(res == 0){ 
        $(".ajax-hide").addClass('hide'); 
        $(".ajax-show").removeClass('hide'); 
       }else{ 
        $(".ajax-hide").removeClass('hide'); 
        $(".ajax-show").addClass('hide'); 
        $("#data_table_tbody").html(res); 
        SITE.TableDropdownMenu(); 
       } 
      }, 
      error: function(res) { 
       console.log('Error:' + res); 
      } 
     }); 
}); 

PHP代码:

public function searchAppraisal() { 
    if(WebUsers::isBusinessAnalyst()){ 
     try { 
      $customer = $this->_request->customer_id; 
      $quarter = $this->_request->quarter; 
      if (!empty($customer) || !empty($quarter)) { 
       $data['appraisals'] = Appraisal::getSearchedAppraisals($customer, $quarter); 
       if(count($data['appraisals'])>0){ 
        echo view('analyst.appraisal.ajax_search_appraisal', $data); 
       }else{ 
        echo 0; 
       } 
      } 
     } catch (Exception $ex) { 
      $this->_response['error'][] = $ex->getMessage(); 
      return response(Helpers::makeAjaxResponse(false, $this->_response)); 
     } 
    }else{ 
     return response('Unauthorized.', 401); 
    } 
} 

是任何人之前,面对这样的?如何在成功ajax调用后重新加载网格。

回答

0

更新dataTable的,你success功能结束后,需要用新的信息重新绘制:yourTable.draw();

+0

你的意思是我需要改变一些东西,如:{ $(“AJAX隐藏。” ).removeClass( '隐藏'); (“.ajax-show”)。addClass('hide'); $(“#data_table_tbody”)。html(res); dataTable.draw(); SITE.TableDropdownMenu(); } –