Hallo zusammen,
ich wollte eigentlich eine schnelle kleine Webapp für meine Frauenmannschaft programmieren, aber irgendwie komm ich immernoch nicht ganz mit AJAX klar und hoffe ihr könnt mir bei meinem Problem ein wenig weiter helfen.
Situation:
Ich erzeuge nach erfolgreichem Login eine beliebige, von mir mittels Variablen eingestellte Reihe an Checkboxen mit dazugehörigen Textfeldern. Diese kann man nun so einstellen, wie man es für richtig hält. Anschließend sollen mit einem klick auf den senden-Button alles kontrolliert und anschließend in die DB eingetragen werden. Ich habe in dem AJAX-Part eine Schleife erstellt, worin er die Daten der einzelnen Checkboxen und Textfeldern Zeilenweise in die Datenbank eingeben soll.
Nun zu meinem Problem:
Er trägt immer nur die letzte Reihe an Checkboxen und Textfelder in die Datenbank und überspringt scheinbar alle anderen. Woran kann das liegen? Wie kann ich es besser machen?
Folgend noch der Code zu dem Problem:
js-Datei
hier noch die php-Datei zum Eintragen in die DB:
Vielen Lieben Dank für die Mühe schonmal,
Liebe Grüße,
Maik
ich wollte eigentlich eine schnelle kleine Webapp für meine Frauenmannschaft programmieren, aber irgendwie komm ich immernoch nicht ganz mit AJAX klar und hoffe ihr könnt mir bei meinem Problem ein wenig weiter helfen.
Situation:
Ich erzeuge nach erfolgreichem Login eine beliebige, von mir mittels Variablen eingestellte Reihe an Checkboxen mit dazugehörigen Textfeldern. Diese kann man nun so einstellen, wie man es für richtig hält. Anschließend sollen mit einem klick auf den senden-Button alles kontrolliert und anschließend in die DB eingetragen werden. Ich habe in dem AJAX-Part eine Schleife erstellt, worin er die Daten der einzelnen Checkboxen und Textfeldern Zeilenweise in die Datenbank eingeben soll.
Nun zu meinem Problem:
Er trägt immer nur die letzte Reihe an Checkboxen und Textfelder in die Datenbank und überspringt scheinbar alle anderen. Woran kann das liegen? Wie kann ich es besser machen?
Folgend noch der Code zu dem Problem:
js-Datei
Code:
function abmelden(){
// damit die Liste nicht ewig lang wird an Fehlermeldungen und immer wieder von vorn beginnt
//document.getElementById("fehlermeldungen").innerHTML="";
// damit geschaut werden kann, ob auch etwas gewählt wurde TODO
// wenn gewaehlt = true -> kann etwas in die Datenbank geschrieben werden TODO
for (i=0; i<5; i++){
if (document.getElementById("ch_"+i).checked){
if(document.getElementById("grund_"+i).value == ""){
document.getElementById("fehlermeldungen").innerHTML = document.getElementById("fehlermeldungen").innerHTML +"<br/> Du hast vergessen einen Grund in der "+(i+1)+". Trainingseinheit anzugeben, obwohl du nicht kommst!";
break;
}
else
{
//eintragen in die DB
resObjekt.open('get','phpsnippets/absage_eintragen.php?tid='+document.getElementById("ch_"+i).value+'&sid='+document.getElementById("spieler_id").value+'&grund='+document.getElementById("grund_"+i).value,true);
resObjekt.onreadystatechange = eintragung_komplett;
resObjekt.send(null);
}
}
}
}
function eintragung_komplett(){
if(resObjekt.readyState == 4){
document.getElementById("fehlermeldungen").innerHTML= resObjekt.responseText+"<br/>";
}
}
Code:
include("../connection/db_user.php");
// Variablen deklarieren
$sid = $_REQUEST['sid'];
$tid = $_REQUEST['tid'];
$grund = $_REQUEST['grund'];
// nun wird überprüft, ob es den Eintrag schon gibt und zunächst danach gesucht
$vorhanden = "SELECT sid, tid FROM abmelden WHERE sid = '$sid' AND tid = '$tid'";
$ausgabe_vorhanden = mysql_query($vorhanden);
if (mysql_num_rows($ausgabe_vorhanden) > 0){
// nun soll die vorhandene Absage in der Tabelle aktualisiert werden
$eintrag_absage = "UPDATE abmelden SET grund = '$grund' WHERE sid = '$sid' AND tid = '$tid'";
$eintragen = mysql_query($eintrag_absage);
//echo $eintrag_absage;
}
else
{
// nun soll die Absage in die Datenbank eingetragen werden
$eintrag_absag = "INSERT INTO abmelden (sid, tid, grund) VALUES ('$sid', '$tid', '$grund')";
$eintrag_a = mysql_query($eintrag_absag);
echo $eintrag_absag;
}
Vielen Lieben Dank für die Mühe schonmal,
Liebe Grüße,
Maik