PHP Datensätze (in Tabelle) nachladen

Dsimon24

Lieutenant
Registriert
Aug. 2016
Beiträge
595
Hallo zusammen!

Ich nutze datatables.js, mit dem Ziel, dass immer nur x-beliebige Datensätze aus einer MySQL-Datenbank in einer Tabelle angezeigt werden. Aber dem Quellcode zu entnehmen, werden
alle Datensätze gerendert, jedoch dann nur die x-beliebigen Datensätze angezeigt.

Eigentlich wollte ich dann mittels datatables.js realisieren, dass die Datensätze, die zu Anfang
nicht angezeigt werden, nachgeladen werden (mittels AJAX) sobald ich mehr sehen möchte.
Durch einen Klick auf Seite 2 von x bspw..

Klappt allerdings nicht so, da ich das Tabellenlayout so nicht realisieren kann.
In den td-Elementen habe ich teils noch eine Formatierung und teils sogar
noch eine if-Abfrage mittels PHP eingebunden.

Habt ihr eine Idee, wie ich dennoch ein Nachladen realisieren kann?
Ich stelle mir das so vor, dass ich je nach Anzahl der Datensätze x Seiten
habe (bspw. 20 Datensätze je Seite) und die nächsten Daten nach Aufruf
der jeweils nächsten Seite nachgeladen werden.

Wenn ich mit Tabs arbeite, wird aber trotzdem alles auf einmal geladen. Oder würde das
Funktionieren? Aber wie realisiere ich es, dass je Tab x Datensätze, die bereits zuvor aus
der DB geladen wurden, gerendert werden? Derzeit habe ich eine forschleife mittels PHP
die jeden Datensatz in der Tabelle ausgibt.

Ich hoffe, ihr könnt mir folgen. JS ist leider noch nicht so meins - eher PHP.

VG, David
 
Keine Ahnung von datatables.js, aber:

Bau dir doch einfach ein php script welches je nach get parameter(n) die daten zurückgibt. Dann kannst die Tabelle mit JS einfach mit den neuen Daten füllen. Ich weiß echt nicht was datatables.js macht, aber wenns nur ums anzeigen einer html tabelle geht, dann kannst du das auch schnell selber machen.

Mit jQuery würde das dann in etwa so gehen (code zum teil einfach aus datei die gerade offen ist und etwas ähnliches macht kopiert, ist wirklich nur sehr beispielhaft :D):

Code:
//click auf nav buttons
$('.navigation a').click(function(e) {
  $.ajax({
    url: apiaddr+'/?battletag='+battletag+'&action=heroes',
    type: 'GET',
    success: function(data) {updateHeroes(battletag, data, false, $(this).attr('id'));},
    error: function(data) {updateHeroes(battletag, data, true);}
  });
});

function updateHeroes(battletag, data, isError, id) {
  data = JSON.parse(data);
  $(deineTabelle).html(''); //tabelle nun weg bzw. leer
  //irgendeine passende schleife hier
  $(deineTabelle).append('<td><tr>'+data[wasauchimmer]+'</tr></td>'); //usw...
}

Edit: Noch einfacher wäre die Tabelle direkt in php zu erstellen und das fertig zurückzugeben. Dann reicht ein $(deineTabelle).html(data) in JS aus ;)
 
Zuletzt bearbeitet:
coolmodi schrieb:
Edit: Noch einfacher wäre die Tabelle direkt in php zu erstellen und das fertig zurückzugeben. Dann reicht ein $(deineTabelle).html(data) in JS aus ;)
das ist an sich widerlich, aber +1.

gerade wenn du business logic hast, die der browser nicht zu gesicht bekommen soll, geht daran wohl kaum ein wenig vorbei, sofern du dich nicht fuer jedes kleine feature wieder in den js-code begeben willst, um feature-parity herzustellen.
 
Zurück
Oben