Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Datatable - ajax success nadpisanie
Forum PHP.pl > Forum > XML, AJAX
rad11
Mając poniższy kod i funkcje success dane nie są generowane przez DataTable.

Potrzebuje w success umieścić tą funkcje " getAccessMessageWithStatus(response) " - która sprawdza czy jest ustawiony obiekt i alertuje wiadomość jeśli jest . Jeżeli jej nie ma to chce wypełnić DataTable danymi z response. Jednak kiedy dodaję tą funkcje to tak jakbym nadpisywał funkcje wbudowaną w DataTable, a za tym idzie to że DataTable gubi dane z respons`u i nie wypełnia tabelki automatycznie więc muszę je jakoś dodać inaczej



  1. $('#' + datatableName).DataTable({
  2. destroy: true,
  3. 'bProcessing': false,
  4. 'bServerSide': true,
  5. 'ajax':
  6. {
  7. 'url': URL,
  8. 'data': filters,
  9. beforeSend: function () {
  10. loader.popup('show');
  11. },
  12. success: function (response) {
  13. getAccessMessageWithStatus(response);
  14.  
  15. },
  16. complete: function () {
  17. $listContainer.show();
  18. $containerChoiseColumnsFilter.show();
  19. $(".containerRaportButtons").show();
  20. getLastSearches();
  21. getUses();
  22. loader.popup('hide');
  23. }
  24. },
  25. 'sServerMethod': "POST",
  26. 'columns': columns,
  27. 'order': order,
  28. 'responsive': true
  29. });


Response z danych wygląda tak:

  1. aaData: [
  2.  
  3. {
  4. x: x
  5. },
  6. {
  7. x: x
  8. }
  9.  
  10. ],
  11. iTotalRecords: xx,
  12. iTotalDisplayRecords: xx


Response z funkcji
  1. msg : "xxxx",
  2. status : false


Jakieś pomysły jak to można zmienić , bawił się kiedyś ktoś z was tym?
nospor
Probowales tych rozwiazan?

Kod
var table = $('#example').DataTable( {
    "ajax": {
            "type" : "GET",
            "url" : "ajax.php",
            "dataSrc": function ( json ) {
                //Make your callback here.
                alert("Done!");
                return json.data;
            }      
            },
    "columns": [
            { "data": "name" },
            { "data": "position" },
            { "data": "office" },
            { "data": "extn" },
            { "data": "start_date" },
            { "data": "salary" }

        ]
    } );

Lub
Kod
"drawCallback": function(settings) {
   console.log(settings.json);
   //do whatever  
},
rad11
Ok coś musiałem źle robić ten przykład działa:

  1. $('#' + datatableName).DataTable({
  2. destroy: true,
  3. 'bProcessing': false,
  4. 'bServerSide': true,
  5. 'ajax':
  6. {
  7. 'url': URL,
  8. 'data': filters,
  9. beforeSend: function () {
  10. loader.popup('show');
  11. },
  12. "dataSrc": function (response) {
  13.  
  14. if (response.status == false) {
  15. alert(response.msg);
  16. loader.popup('hide');
  17. return [];
  18. }
  19. $listContainer.show();
  20. $containerChoiseColumnsFilter.show();
  21. $(".containerRaportButtons").show();
  22. getLastSearches();
  23. getUses();
  24. loader.popup('hide');
  25. return response.aaData;
  26.  
  27. }
  28. },
  29. 'sServerMethod': "POST",
  30. 'columns': columns,
  31. 'order': order,
  32. 'responsive': true
  33. });


Dodam ciekawostkę ze jeżeli zlikwiduje się średnik za funkcja w success to też działa.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.