Hallo,
Undzwar möchte ich mit jQuery die id mir merken und dann immer übergeben.
Die ID wird immer aus der letzten Nachricht "extrahiert" und dann gehts in eine Endlosschleife um zu checken,
ob es neue nachrichten gibt.
Dafür brauche ich eben die aktuelle ID, die verändert sich ja wenn es neue Nachrichten gibt.
Wie kann ich jetzt meinem Script klarmachen dass es dann immer die höchte also älteste ID von der nachricht nehmen soll?
In diesem Teil wird als erstes ein JSON Request gemacht.
Dieser Teil klappt auch ohne probleme.
Nun zur loadcomments(); function:
Nun möchte ich hier die letzte ID rausnehmen wenn es eine neue nachricht
gibt und das hab ich mir so überlegt:
Gesamter Code nochmal ohne den Versuch:
Wie löst man dies am besten?
Ich hoffe, ich habe es so erklärt dass man es versteht,
sonst einfach nachfragen.
Undzwar möchte ich mit jQuery die id mir merken und dann immer übergeben.
Die ID wird immer aus der letzten Nachricht "extrahiert" und dann gehts in eine Endlosschleife um zu checken,
ob es neue nachrichten gibt.
Dafür brauche ich eben die aktuelle ID, die verändert sich ja wenn es neue Nachrichten gibt.
Wie kann ich jetzt meinem Script klarmachen dass es dann immer die höchte also älteste ID von der nachricht nehmen soll?
In diesem Teil wird als erstes ein JSON Request gemacht.
Dieser Teil klappt auch ohne probleme.
Code:
$(function() {
$.getJSON("backend/chat.php?jsoncallback=?&new", function(data) {
for (var x = 0; x < data.length; x++) {
var div = $("<div>").addClass("chat").appendTo("#chat");
$("<label>").text(data[x].name+":"+data[x].content).appendTo(div);
var by_id = data[x].id; //Hier wird die letzte ID gespeichert.
}
$("#chat").prop({ scrollTop: $("#chat").prop("scrollHeight") });
loadcomments(by_id); //Hier wird die loadcomments(); funtion mit der ID aufgerufen.
});
});
Nun möchte ich hier die letzte ID rausnehmen wenn es eine neue nachricht
gibt und das hab ich mir so überlegt:
Code:
function loadcomments(by_id){
$(document).everyTime(1000, function() {
var url = "backend/chat.php?jsoncallback=?&by_id="+by_id;
$.getJSON(url, function(data) {
var theid = ""; // Leer definieren
for (var x = 0; x < data.length; x++) {
var div = $("<div>").addClass("chat").appendTo("#chat");
$("<label>").text(data[x].name+":"+data[x].content).appendTo(div);
$("#chat").prop({ scrollTop: $("#chat").prop("scrollHeight") });
var theid = data[x].id; // Wenn es neue nachrichten gibt, hier wieder die letzte ID speichern.
}
// IDEE TEIL START
// Wenn theid leer ist, wieder die gleiche ID zum abfragen angeben, sonst die neue nehmen.
if (theid == '') {
var by_id = by_id;
} else {
var by_id = theid;
}
// IDEE TEIL END
});
});
}
Gesamter Code nochmal ohne den Versuch:
Code:
$(function() {
$.getJSON("backend/chat.php?jsoncallback=?&new", function(data) {
for (var x = 0; x < data.length; x++) {
var div = $("<div>").addClass("chat").appendTo("#chat");
$("<label>").text(data[x].name+":"+data[x].content).appendTo(div);
var by_id = data[x].id;
}
$("#chat").prop({ scrollTop: $("#chat").prop("scrollHeight") });
loadcomments(by_id);
});
});
function loadcomments(by_id){
$(document).everyTime(1000, function() {
var url = "backend/chat.php?jsoncallback=?&by_id="+by_id;
$.getJSON(url, function(data) {
for (var x = 0; x < data.length; x++) {
var div = $("<div>").addClass("chat").appendTo("#chat");
$("<label>").text(data[x].name+":"+data[x].content).appendTo(div);
$("#chat").prop({ scrollTop: $("#chat").prop("scrollHeight") });
}
});
});
}
Wie löst man dies am besten?
Ich hoffe, ich habe es so erklärt dass man es versteht,
sonst einfach nachfragen.
Zuletzt bearbeitet: