Aktualisiere Datenquellen (JQuery), wenn auf die Schaltfläche geklickt wird

8

Ich habe ein einfaches Formular erstellt und verwende das Datatables-jQuery-Plugin, um einige Daten darin anzuzeigen. Daten werden von einem PHP-Skript (process.php) gefüllt, das die richtigen Ergebnisse im JSON-Format liefert. Im Formular gibt es eine Schaltfläche, die den Wert des Textfelds an die process.php sendet. Das Problem ist, dass ich die Datentabelle mit den neuen Daten, die vom Skript process.php empfangen werden, nicht aktualisieren / ändern kann, wenn auf die Schaltfläche geklickt wird .

Der Code des Formulars:

%Vor%

Um die Datentabelle zu erstellen, verwende ich den folgenden JQuery-Code:

%Vor%

process.php script (funktioniert gut) ist:

%Vor%     
dimmat 15.04.2012, 08:18
quelle

4 Antworten

1

Es sieht so aus, als ob Sie auch fnServerData angeben sollten, wenn Sie Ihr Datable einrichten, wenn Sie ajax POST verwenden möchten: Ссылка

Es ist auch möglich, dass Sie fnReloadAjax() nicht aufrufen müssen, sondern nur fnDraw() . fnReloadAjax() ist eine Plugin-Funktion, also nehme ich an, du hast sie vorher geladen.

    
Stefan 15.04.2012, 09:01
quelle
4

fnReloadAjax ist das, was Sie verwenden sollten (und ich glaube, dass ein Redraw in die Funktion eingebaut sein könnte). Aber das Problem ist, dass, obwohl Sie einen zweiten .ajax Aufruf machen, die Daten in diesem Aufruf überhaupt nicht mit Ihrer Datentabelle verbunden sind und niemals an sie gebunden sind.

Wenn Sie fnReloadAjax verwenden, wird derselbe Ajax-Aufruf ausgeführt, den Sie bei der Initialisierung Ihrer Tabelle angegeben haben. Also, was Sie brauchen, wie Stefan erwähnt hat, ist, Ihren fnServerData -Parameter in Ihren Dataset-Einstellungen anzugeben (aber die Success -Parameter zu verwerfen, weil etwas in diesen Zeilen bereits von Datatables übernommen wird). Dann rufen Sie einfach Ihren Button fnReloadAjax() auf.

Hier ist, wie Ihr endgültiger Code aussehen sollte:

%Vor%     
mbeasley 15.04.2012 12:54
quelle
3

Endlich habe ich die Lösung gefunden! Es gab 2 Probleme in meinem JQuery-Code:

  1. Ich musste den fnReloadAjax () - Code nach den Script-Tags hinzufügen, die Datatables und vor der $ (document) .ready () -Anweisung laden.
  2. Ich musste den JQuery-Code meiner Absenden-Schaltfläche ändern (keine Notwendigkeit für einen AJAX-Aufruf, nur fnReloadAjax () ist notwendig).

Danke euch beiden Stefan & amp; mbeasley !!

JQuery-Code ist jetzt:

%Vor%     
dimmat 15.04.2012 18:04
quelle
0

Sie können die Tabelle auch einfach zerstören und neu erstellen.

%Vor%     
James 10.04.2013 21:18
quelle

Tags und Links