2016-05-09 1 views
2

im ajaxを使用したユーザー検索に基づいてデータを表示するためのjqueryデータテーブルを使用します。データテーブルは更新されません。次回または前のボタンをクリックすると、最初にロードされた値が表示されます。次回または前のボタンをクリックすると、datatableが古い値を表示しています。

function searchCustomer() { 

var frm = $("#customerDetailSearchForm").serializeObject(); 
$("#tbl_contact_search_result").hide(); 

$.ajax({ 
type: 'POST', 
url: restContextPath + '/IONSWeb/rest/order/searchContact', 
data: JSON.stringify(frm), 
dataType: 'json', 
contentType: "application/json; charset=utf-8", 
success: function(data, status, xhr) {    
     $("#tbl_contact_search_result tbody").empty(); 
    $.each(data.body, function(i, item) {     
     var checkBox = item.actionString; 
     var dataTableBodyHTML = '<tr><td>'+ checkBox + '</td><td>'+ item.name + '</td><td>'+ item.street +'</td><td>' + item.city + '</td><td>'+ item.state + '</td><td>' + item.phone +'</td></tr>'; 

     $("#tbl_contact_search_result tbody").append(dataTableBodyHTML);    
     $("#tbl_contact_search_result").show(); 
    });   
     var dataTable = $('#tbl_contact_search_result').DataTable(); 

     }, 
     error: function(jqXhr, textStatus, errorMessage) {    
       $('.ErrorMsg').html('<h5>An error has occurred</h5>'); 
      } 
     }); 
    } 
+0

郵便返還はあなたに正しいデータを与えますか?多分それはキャッシュされますか?または、データが正しくあり、テーブルが更新されていないだけですか? – Shilly

+0

@ Shilly、はい、応答で正しいデータを取得し、データテーブルはそのデータを最初の10レコードに表示しています。次のボタンを使用して2番目のページに移動するか、ページ番号をクリックすると古いデータが表示されます。並べ替えをクリックすると古いデータも表示されます。新しいデータはすぐに消えています。 –

+0

この関数とデータテーブルの内容を設定する別の関数との間に矛盾があります。これはテーブル本体にデータを追加する唯一の機能ですか? – Shilly

答えて

0

ajaxキャッシング機能を無効にするだけです。 The default value is true。したがって、あなたはそれをfalseとして設定する必要があります。 (キャッシュ:偽)

function searchCustomer() { 

var frm = $("#customerDetailSearchForm").serializeObject(); 
$("#tbl_contact_search_result").hide(); 

$.ajax({ 
type: 'POST', 
url: restContextPath + '/IONSWeb/rest/order/searchContact', 
data: JSON.stringify(frm), 
dataType: 'json', 
cache: false, 
contentType: "application/json; charset=utf-8", 
success: function(data, status, xhr) {    
     $("#tbl_contact_search_result tbody").empty(); 
    $.each(data.body, function(i, item) {     
     var checkBox = item.actionString; 
     var dataTableBodyHTML = '<tr><td>'+ checkBox + '</td><td>'+ item.name + '</td><td>'+ item.street +'</td><td>' + item.city + '</td><td>'+ item.state + '</td><td>' + item.phone +'</td></tr>'; 

     $("#tbl_contact_search_result tbody").append(dataTableBodyHTML);    
     $("#tbl_contact_search_result").show(); 
    });   
     var dataTable = $('#tbl_contact_search_result').DataTable(); 

     }, 
     error: function(jqXhr, textStatus, errorMessage) {    
       $('.ErrorMsg').html('<h5>An error has occurred</h5>'); 
      } 
     }); 
    } 
+0

私はキャッシュを追加しました:偽、私はページングボタンをクリックすると古いデータを表示しています。新しい値を表示するデータテーブルの最初のページは、ページングボタンをクリックすると古い値が表示されます。だから、問題はajaxで、私は問題がデータテーブルにあると思うだけ –

+0

あなたのシステムでいくつかのキャッシュ機能を使用している – Mojtaba

関連する問題