|
 |
|
| Autor |
Nachricht |
odc Neuer [User]

Anmeldung: 30.03.07 Beiträge: 1
|
Verfasst am: 30.03.2007, 11:37 Titel: AJAX-Problem (Lückentext mit input-Feldern) |
|
|
Hallo community,
ich bin krachneu hier und bin mir daher nicht ganz sicher, ob ich auch im richtigen Forum poste. Es geht um teilweise ein PHP- und teilweise ein AJAX-Problem.
Hier in Kürze: Ich habe ein (HTML-)Formular mit 4 Textfeldern. Diese Textfelder sind in einem Lückentext verteilt und sollen ausgefüllt werden. Das PHP-Skript hält die richtigen Lösungen vor und vergleicht nach dem AJAX-Aufruf die Nutzereingaben mit den korrekten Lösungen.
Allerdings habe ich die Befürchtung, dass mein JavaScript total falsch ist. Bei jedem Versuch, korrekte oder falsche Eingaben zu machen und das Formular zu testen, bockt der Aufruf und zeigt mir ständig die falsche Lösung an. Kurioserweise funktioniert der Aufruf beim vierten Textfeld ganz hervorragend. Daher denke ich, meine Schleifeniterationen sind falsch durchdacht.
Code sagt ja bekanntlich mehr als 10000000 Worte.
Hier das JavaScript:
| Code: |
function baueAnfrage()
{
var text = new Array();
for (var i=0; i<=3; i++)
{
erzeugeAnfrage();
text[i] = document.getElementById("aufgabe" + i).value;
//alert (text);
var url = "includes/lueckentext1.php?aufgabe" + i + "=" + text[i];
//alert (url);
anfrage.open("GET", url, true);
anfrage.onreadystatechange = updateSeite; //NIEMALS KLAMMERN SETZEN!!!
anfrage.send(null);
}
}
function updateSeite()
{
if (anfrage.readyState == 4 && anfrage.status == 200)
{
var korrigierterText = anfrage.responseText; //was steht im array?
var myH3 = document.createElement("h3"); //element erzeugen
var myText = document.createTextNode(korrigierterText); //textnode erzeugen
myH3.appendChild(myText); //text ans element kleben
var Ausgabebereich = document.getElementById("neuerText"); //und in den entsprechenden div-container...
Ausgabebereich.appendChild(myH3); //reinschreiben...
}
}
|
Hier das PHP-Skript
| Code: |
<?php
//uebergabe der get-vars
$eintrag0 = htmlspecialchars($_GET['aufgabe0']);
$eintrag1 = htmlspecialchars($_GET['aufgabe1']);
$eintrag2 = htmlspecialchars($_GET['aufgabe2']);
$eintrag3 = htmlspecialchars($_GET['aufgabe3']);
//array der Eintragungen
$gesamteintrag = array($eintrag0, $eintrag1, $eintrag2, $eintrag3);
//array der richtigen loesung
$luecken = array("einmalige", "erzielendes", "Ressourcen", "Substanz");
for ($i=0; $i<=3; $i++)
{
if (in_array($gesamteintrag[$i], $luecken))
{
echo "Prima! $eintrag[$i] ist richtig!";
}
else
{
echo "Leider falsch...!";
}
}
?>
|
Und hier der Auszug aus der Template-Datei
| Code: |
<div id="uebung1"><div>
<h2>Ergänzen Sie den Lückentext:</h2>
<form action="includes/lueckentext1.php" method="get" id="luecke1">
"Ein Projekt ist eine <input type="text" id="aufgabe0" size="10" value="" /> Aufgabe.
und ist auf ein zu <input type="text" id="aufgabe1" size="10" />
Ergebnis gerichtet. Es benötigt vielfältige <input type="text" id="aufgabe2" size="10" />
und ist zeitlich begrenzt. Es muss außerdem eine gewisse <input type="text" id="aufgabe3" size="10" />
besitzen."<br />
<input type="button" name="send" value="Prüfe!" onClick="baueAnfrage()" />
<div id="neuerText"><!-- New Content -->
|
Wie ihr seht, ist das Ganze recht einfach gehalten, und dennoch knoble ich jetzt seit Tagen an diesem Phänomen herum...
Die Ausgabe bei korrekter Eingabe sieht übrigens wie folgt aus:
| Zitat: | | Leider falsch...!Leider falsch...!Leider falsch...!Prima! ist richtig! |
Man kann hier sehen, dass der letzte Eintrag ("Substanz") korrekt überprüft wird.
Hat jemand eine Idee? Ist mein AJAX-Aufruf falsch? Ist mein JavaScript grottig?
Vielen Dank für jegliche Hilfe!
Viele Grüße - odc
|
|
| Nach oben |
|
 |
|
|
 |
|
Alle Zeiten sind GMT + 1 Stunde
|
| Seite 1 von 1 |
|  |