2017-05-29 12 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

あなたsuccess関数の最後に、あなたのdataTableを更新した後、あなたは新しい情報でそれを再描画する必要があります。yourTable.draw();

+0

あなたは私のようなものに変更する必要があります意味:{ $(「AJAX非表示を。」 ).removeClass( 'hide'); addClass( 'hide'); $( "。ajax-show")。 $( "#data_table_tbody").html(res); dataTable.draw(); SITE.TableDropdownMenu(); } –

関連する問題