JQuery, Ajax, LENKER Tabelle löschen, dann neu Auffüllen
Ein Formular erstellen, geht raus und schnappt sich Daten, dann wird eine Tabelle mit handlebars.js. Funktioniert Super auf dem ersten gehen, um dann nicht wieder Auffüllen, wenn Daten geändert werden. Irgendwelche Ideen auf, wie diese zu arbeiten?
$('a.button').on("click", function(e){
e.preventDefault();
var date = $('#datepicker').val();
var func = "get_all_swo_by_date";
//$('table.output').empty();
$.ajax({
url: "../includes/db_functions.inc.php",
type: "post",
data: ({ p : date, f : func }),
dataType: "json",
success: function(results) {
var source = $("#entry-template").html();
var template = Handlebars.compile(source);
$('table.output').empty();
if(results.length > 0)
{
$.each(results, function(i, context){
$('table.output').append( template(context) );
});
} else {
$('table.output').append("There is no data to return.");
}
}
});
});
Wenn das "a" mit einer Klasse der button geklickt wird, füllt es die Tabelle.. (wie oben beschrieben). Ok wenn Sie jetzt ändern datepicker auf ein anderes Datum, und klicken Sie auf die "a" mit einer Klasse der Taste wird es nicht wieder bevölkern den Tisch.
Wenn jemand eine legitime Idee, warum es nicht funktioniert lasst es mich bitte wissen. Bitte nicht einfach nur make-up Zeug. Kann ich tun, dass viel auf mein eigenes.. 🙂
InformationsquelleAutor tattooedgeek | 2013-04-12
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok also hier ist die Antwort im Fall, jemand ist auf der Suche nach es die Straße hinunter.
Was ich tun wollte, war klar, die Tabelle, bevor ich angehängt geänderten Daten, so dass, wenn ich die:
bevor Sie die append-ich dachte, das könnte funktionieren. Allerdings war ich faul und hatte nicht meine handlebars.js Vorlage aus einer anderen Datei, also alles, was ich Tat, ist clearing aus meiner Vorlage, so könnte es nicht wieder aufgefüllt werden. Ist es im Grunde gar nicht existieren.
So erstellen Sie eine externe Datei namens yourtemplate.LENKER und fügen Sie Ihren code. In meinem Fall war es swooutput.LENKER:
dann erstellen Sie eine templates.js Datei in einem js-Ordner in etwa so:
Bekam ich, dass von irgendwo, aber kann mich nicht erinnern, wo im moment. Wenn ich das Tue, poste ich den link. Trotzdem, statt mit der Vorlage in die Seite, die Sie verwenden, die Funktion zu greifen, die Vorlage (macht es schneller als das kompilieren zur Laufzeit). Oder Sie können vorkompilierte templates, ich finde diese Methode einfacher.
So hier ist das fertige jquery-ajax-call mit dem modifizierten code:
Ich hoffe das hilft die nächste person, die kommt.
Fügen Sie einfach die
und
Und Ihre jQuery: