Hi liebes JsWelt Forum,
auf meiner langen, beschwerlichen Reise durch die Welt von JS bin ich mal wieder an einen Punkt angelangt, bei dem ich eure Hilfe benötige. Zahlreiches Durchsuchen von diversen Foren konnten mir bei meinem Faulen Zahn nicht weiterhelfen. Hoffe das ich hier weiterkomme.
/*----------------------*/
Tatbestand:
Hier wird in HTML5 eine einfache TB erzeugt, die per JS, Jquery Ajax und PHP Daten aus einer mySQL DB ausliest bzw. verarbeitet.
Unter Anderem ist mit verarbeiten gemeint, dass die angeforderten Informationen (Datensätze im zurückgelieferten Array) der Einfachheit halber in die für sie vorgesehenen TB-Spalten, im HTML Dokument per Jquery Call, eingetragen werden sollen.
Im Folgenden soll anhand der Gezeigten Grafiken das eigentliche Problem veranschaulicht werden:
Gra Nr. 1:

Das soll die TB im Ursprünglichen Zustand sein.
--------
Gra Nr. 2:

Hier wird das eigentliche Problem ersichtlich.
Der Datensatz mit der ID = 212 wurde aus mir unbegreiflichen Gründen Gedoppelt. (Es handelt sich hierbei um den als leztes in die DB eingetragene Datensatz, sprich der mit der höchsten ID)
Der Code zum Auslesen bzw. verarbeiten:
--------
Gra Nr. 3:

Bei Manueller Aktualisierung erzeugt dann der Browser die richtige Darstellung ohne gedoppelte Datensätze.
Nachtrag:
So sieht das aus, wenn ich alle Vorgänger Datensätze gelöscht habe. Jquery Ajax verhält sich normal und löscht die entsprechenden Datensätze. Jedoch wird der Lezte immer weiter vervielfältigt.
Dieser ist in der mySQL TB exakt nur einmal vorhanden.

Kann mir jemand auf die Sprünge helfen und mir sagen was der Grund für dieses Verhalten ist?
MFG
auf meiner langen, beschwerlichen Reise durch die Welt von JS bin ich mal wieder an einen Punkt angelangt, bei dem ich eure Hilfe benötige. Zahlreiches Durchsuchen von diversen Foren konnten mir bei meinem Faulen Zahn nicht weiterhelfen. Hoffe das ich hier weiterkomme.
/*----------------------*/
Tatbestand:
Hier wird in HTML5 eine einfache TB erzeugt, die per JS, Jquery Ajax und PHP Daten aus einer mySQL DB ausliest bzw. verarbeitet.
Unter Anderem ist mit verarbeiten gemeint, dass die angeforderten Informationen (Datensätze im zurückgelieferten Array) der Einfachheit halber in die für sie vorgesehenen TB-Spalten, im HTML Dokument per Jquery Call, eingetragen werden sollen.
Im Folgenden soll anhand der Gezeigten Grafiken das eigentliche Problem veranschaulicht werden:
Gra Nr. 1:

Das soll die TB im Ursprünglichen Zustand sein.
--------
Gra Nr. 2:

Hier wird das eigentliche Problem ersichtlich.
Der Datensatz mit der ID = 212 wurde aus mir unbegreiflichen Gründen Gedoppelt. (Es handelt sich hierbei um den als leztes in die DB eingetragene Datensatz, sprich der mit der höchsten ID)
Der Code zum Auslesen bzw. verarbeiten:
Code:
var showFirstFive = function(){
$.ajax({
url: "includes/connectDB.php",
type: "POST",
data: {
action: "firstFive"
},
//der parameter dat ist vom TYP String (JSON => "{'key':'value'}" ), solange noch nicht geparst wurde.
success: function (dat) {
var eJson = JSON.parse(dat);
var counter = 0;
for (var iIdx in eJson) {
for (var iEle in eJson[iIdx]) {
if (iEle === "id") {
$("#id" + counter).empty();
$("#id" + counter).append(eJson[iIdx][iEle]);
} else if (iEle === "event") {
$("#e" + counter).empty();
$("#e" + counter).append(eJson[iIdx][iEle]);
} else if (iEle === "bezirk") {
$("#b" + counter).empty();
$("#b" + counter).append(eJson[iIdx][iEle]);
} else if (iEle === "start") {
//erstellung variable um eventuell anderes format auszugeben
var datum = eJson[iIdx][iEle];
$("#s" + counter).empty();
$("#s" + counter).append(datum);
}else if (iEle === "currentTStamp") {
continue;
}else
return;
}
counter++;
}
}
});
}
/*
* Achtung ! Der eigentliche Code zur
* Verarbeitung befindet sich über diesem
* mehrzeiligen Kommentar.
* Darunter das Handling der Events.
*
**/
$(document).ready(function () {
showFirstFive();
$("#modalSendButton").on("click", function (event) {
$.ajax({
url: "includes/connectDB.php",
type: "POST",
data: {
action: "insert",
kapot: JSON.stringify({
"input1": $("#event-npt").val(),
"input2": $("#bezirk-npt").val(),
"input3": $("#date-npt").val()
})
},
//der parameter dat ist vom TYP String (JSON => "{'key':'value'}" ), solange noch nicht geparst wurde.
success: function (dat) {
showFirstFive();
}
});
});
$("tbody img").on("click", function (event) {
var classOfParentsFirstSibbling = $(event.target).parent().siblings()[0].getAttribute("class");
var idOfParentsFirstSibbling = $(event.target).parent().siblings()[0].id;
var valueOfCurrentId = $("#"+idOfParentsFirstSibbling).text();
var classOfClickedElement = event.target.getAttribute("class");
if(classOfParentsFirstSibbling === "bearbeiten" && classOfClickedElement === "loeschen"){
$.ajax({
url: "includes/connectDB.php",
type: "POST",
data: {
action: "delete",
kapot: JSON.stringify({
"input1" : valueOfCurrentId
})
},
//der parameter dat ist vom TYP String (JSON => {'key':'value'} ), solange noch nicht geparst wurde.
success: function (dat) {
alert(dat);
showFirstFive();
}
});
}
else if(classOfParentsFirstSibbling === "bearbeiten" && classOfClickedElement === "editieren"){
$.ajax({
url: "includes/connectDB.php",
type: "POST",
data: {
action: "edit",
kapot: JSON.stringify({
"input1" : valueOfCurrentId
})
},
//der parameter dat ist vom TYP String (JSON => "{'key':'value'}" ), solange noch nicht geparst wurde.
success: function (dat) {
showFirstFive();
}
});
}
//alert(idOfParentsFirstSibbling);
//alert(classOfClickedElement);
//alert(classOfParentsFirstSibbling);
});
});
--------
Gra Nr. 3:

Bei Manueller Aktualisierung erzeugt dann der Browser die richtige Darstellung ohne gedoppelte Datensätze.
Nachtrag:
So sieht das aus, wenn ich alle Vorgänger Datensätze gelöscht habe. Jquery Ajax verhält sich normal und löscht die entsprechenden Datensätze. Jedoch wird der Lezte immer weiter vervielfältigt.
Dieser ist in der mySQL TB exakt nur einmal vorhanden.

Kann mir jemand auf die Sprünge helfen und mir sagen was der Grund für dieses Verhalten ist?
MFG
Zuletzt bearbeitet von einem Moderator: