2016-03-23 16 views
0

DataTable bir tablosunu tablosunu başlatırken başarılı bir şekilde başarılı bir şekilde alır.
Şimdi, DataTable'ı güncellemek için AJAX verilerini "refetch" edebilmem gerekiyor, ancak tabloyu yeniden başlatmadan .DataTables içinde AJAX verileri nasıl değiştirilir

ajax.data(data, settings) 

burada Açıklaması: http://datatables.net/reference/option/ajax.data

Ancak

bazı araştırmadan sonra ben "bir fonksiyon olarak" aşağıdaki satırı kullanmak gerekir öğrendim. Bunu "bir işlev olarak" nasıl kullanacağımı bulamıyorum. Sayfada bir örneği yok.

Aşağıdaki gibi denedim.
Benim orijinal DataTable oluşturma:

launch_datatable_ajax = function(){ 
    get_ajax_data(); 

    dyn_t = $('#dynamic_table').DataTable({ 
      "ajax": { 
       "url":ajax_url, 
       "data":data, 
       "dataSrc":"" 
      }, 
      "columns": [ 
       { "data" : "ID" }, 
       { "data" : "post_title" }, 
       { "data" : "supplier_company" }, 
       { "data" : "img_src" }, 
       { "data" : "tags" }, 
       { "data" : "post_meta" }, 
      ], 

    }); 

} 

Sonra yeni parametrelerle Verileri yeniden çalıştı. Burada sıkıştığım yer.

dyn_t.ajax.data(data,dyn_t.settings); 

ben parametreler için doğru olduğumu düşünüyorum: console.log(data);

Ama: console.log(dyn_t.settings); 'veri' benim nesnesi (değişkenleri olsun) verir
:
dyn_t.settings biraz bilgi verir console.log diyor:

cevap

0

Yeniden yükleme, dyn_t.ajax.reload(); ile bir oluyor. Bununla birlikte, sunucuya güncellenmiş URL parametrelerini gönderme zorunluluğunuz da vardır.

Bunu yapmak için, ajax için fonksiyon argümanı kullanmak gerekir: Her ajax.reload() çağrısında http://datatables.net/reference/option/ajax#function

fonksiyon yeniden geçerli kılınarak. Bu yüzden yeni paramlar gönderilecek.

  ajax: function (data, callback, settings) { 
       $.ajax({ 
        url: "ajax_url?" + $("my-form").serialize(), 
        data: { start: data.start, count: data.length } 
       }); 
      }, 
+0

Bu ajax yeniden yükler ancak yeni get-değerleri almaz: Yani id my-form sahip bir HTML formu var varsayarak böyle bir şey deneyin. – mesqueeb

+0

ajax çağrısı yaptığından, sunucudan getirilen veriler veri tabanına yansıtılacaktır. Bu gerçekleşmiyor mu? Sunucudan gelen yeni verilerin aslında başlangıçtan farklı olup olmadığını kontrol edebilir misiniz? –

+1

Veriler tekrar getiriliyor ancak kullanıcı diğer verileri aramak için farklı şeyler doldurdu. Yani ajax'ı yeniden yüklemem gerektiğini, ancak farklı get değeriyle demek istediğimi söylemek istiyorum. Sadece yeniden yüklüyorsam, orijinal get-değerleri yol açar. Get_ajax_data() işlevini kullandım; Yeni get değerlerini alın ve bunları veri kümelerinin kullandığı bir iş URL'sine yapıştırın. – mesqueeb

İlgili konular