2017-12-10 1 views
1

Ich habe ein Problem in meinem Code. Ich kann die year Werte in meiner DatentabelleVariable Wert hat sich in Ajax.reload Datentabelle nicht geändert

Dieser Code ändern wird das aktuelle Jahr:

var yearDate = new Date(); 

var year = yearDate.getFullYear(); 

My Datatable-Methode:

$(document).ready(function() { 

    januaryTable = $('#january').DataTable({ 

     "processing": true, 
     "serverSide": true, 
     "order": [], 


     "ajax": { 
      "url": "<?php echo site_url('gastos/ajax_list/')?>" + year+'-01-01' +'/'+ year+'-01-31', 
      "type": "POST", 

     }, 

     "columnDefs": [ 
      { 
       "targets": [ -1 ], 
       "orderable": false, 
      }, 
     ], 

    }); 
} 

Dieser Code nachlädt meine Datentabelle

function reload_january_table() 
{ 
    januaryTable.ajax.reload(null,false); 

} 

Ich ändere die var mit einer Select-Methode und Es ruft die Funktion reload_january_table() auf, aber wenn ich zum Beispiel den Wert 2016 auswähle, erhält die Tabelle keine Werte von 2016, sie behält die 2017 Werte bei.

Kann mir jemand helfen? Und Entschuldigung für mein Englisch, wenn es nicht gut ist.

+0

Wie ist Ihre _select-Methode_ implementiert? – dferenc

+0

Es hat den Wert var year geändert, weil ich es in einer Funktion verwende. –

+0

Funktion Redirect (Obj) { var yearO = obj.value; Jahr = JahrO; reload_january_table(); reload_january_total_invoice(); } –

Antwort

1

Das Problem ist, dass die ajax.url nur ausgewertet wird, wenn die Tabelle initialisiert wird, so dass der erste Wert Ihrer Jahresvariable in die URL "gebrannt" wird.

Die Lösung ist die neue URL für Datentabellen zu setzen, wenn der Wert des Jahr Änderungen wie folgt:

dataTable.ajax.url('NEW_URL').load(); 

Sie den zugehörigen Teil der Tables Dokumentation unter ajax.url() finden.

In Ihrem speziellen Fall könnten Sie den neuen Wert des Jahres als Argument in den Funktionsaufruf reload_january_table(year) übergeben und diese Funktion verwenden, wie unten.

function reload_january_table(year) { 
    var newUrl = "<?php echo site_url('gastos/ajax_list/')?>" + year + '-01-01' + '/' + year + '-01-31'; 

    januaryTable.ajax.url(newUrl).load(); 
} 
+0

Danke Mann, es funktioniert jetzt. –

Verwandte Themen