2017-02-08 3 views
0

habe ich eine Filterform und es über Ajax Post Anfrage senden:Refresh Tabelle nach Ajax-Antwort (django)

$('#id_server').change(function(e) { 
     $.post($("form").attr("action"), { 
      action: 'filter', 
      filter: $("#id_server").attr("name"), 
      info: $("#id_server option:selected").attr("value"), 
     }, function (response) { 

     }); 

Im Backend I Filterung und neuen recieving queryset dann sende ich neue Seite Ajax

die Frage ist, wie Lastseite von der ajax-Antwort auf den Bildschirm oder nur 1 gefilterten Tag?

Oder kann es eine Möglichkeit, neue Abfrage von Django gesetzt zu senden und machen?

Antwort

0

jQuerys .post() Funktion hat, eine Rückruffunktion (die mit response als Argument). Diese Funktion wird aufgerufen, wenn der AJAX geladen ist.

Es hängt nun davon, wie Sie Ihre Django Backend das Ergebnis zurückgibt. Wenn es ein Stück HTML zurückkehren können Sie direkt stecken Sie sie in Ihren DOM mit so etwas wie: $(".result").html(response);. Ändern Sie den .result Wähler auf die Klasse oder ID Ihres DOM-Knoten, wo es das Ergebnis Ihrer AJAX platzieren sollte.

+0

Ich muss nur 'ersetzen

' tage und Ajax respone ist '
# einige neue Informationen
' Wenn ich schreibe aunderstand ich brauche '$ ("table") html (Antwort);.'? – Hellbea

+0

Die .html-Funktion von jQuery ändert den Inhalt eines DOM-Knotens. Wenn Sie also diesen Code ausprobieren würden, wäre das Ergebnis '

Einige neue Informationen
'. Daher möchten Sie das übergeordnete Element Ihrer Tabelle auswählen. Sie sollten das mit einer eindeutigen Klasse oder ID tun. Denn gerade jetzt, wenn man nur auf 'table' auswählt, spielt es keine Rolle, welche Tabelle es ist, nur irgendeine, die es auf Ihrer Website findet. Was als schlechte Praxis gilt. – Zonakusu