Submit mit Ajax
Linda D.
- javascript
Hallo zusammen,
ich habe ein Formular, das mit Hilfe von AJAX validiert wird. Wenn die Angaben nicht in Ordnung sind, dann wird ein Fehler über dem Formular eingeblendet (kein Reload der Seite). Wenn alles stimmt, dann werden die Daten aus dem Formular versandt. Die Validierung erfolgt dann aus Sicherheitsgründen auch zum zweiten Mal auf dem Server.
Was ich jetzt erreichen möchte ist, dass wenn Javascript ausgeschaltet ist, dann wird das Formular normal mit action versandt (die Validierung geht ja auch serverseitig). Wenn JavaScript zugelassen ist, dann soll die Validierung per AJAX ohne Reload der Seite statt finden.
Was mir vorschebt:
<form action="edit.php" onSubmit="return AjaxRequest();" .....
Meine Logik: wenn Ajax mit false antwortet, wird das Formular nicht versandt. Wenn Ajax mit true antwortet, dann wird das Formular abgesandt. Wenn JavaScript ausgeschaltet ist, dann wird das Formular auf jeden Fall versendet (was auch gewünscht wird).
Im Moment allerdings, egal was AjaxRequest() zurückliefert, wird das Formular versandt.
Gibt es eine Möglichkeit meine Anforderung umzusetzen, ohne eine Prüfung zu starten, ob JavaScript im Browser eingeschaltet ist oder nicht?
Danke.
Linda
Hallo Linda D.,
mir scheint, dass Dein Vorhaben überhaupt keine sinmnhafte Anwendung für AJAX ist. Wenn Du mit JS in Echt-Zeit etwas prüfen willst, dann tu dies doch und zwar _direkt_ und nicht über den Umweg AJAX. Warum sendest Du die Daten erst zum Server, der validiert diese und Du blendest sie wieder ein?
Mit freundlichem Gruß
Micha
Hallo Micha,
vielen Dank für die schnelle Antwort.
Warum sendest Du die Daten erst zum Server, der validiert diese und Du blendest sie wieder ein?
Weil ich gegen die Datenbank validieren muss und zwar die Eingaben auf Eindeutigkeit überprüfen. Das kann ich nicht "nur" mit JavaScript machen.
Linda
Hallo Linda D.,
Das kann ich nicht "nur" mit JavaScript machen.
Du kannst das Prüfkriterium nicht beim Laden der Seite als Variable an das JavaScript übergeben?
Mit freundlichem Gruß
Micha
Du kannst das Prüfkriterium nicht beim Laden der Seite als Variable an das JavaScript übergeben?
Das ist ein bisschen zu viel bei über 8000 Benutzer. Ich muss auf den Loginnamen und Email überprüfen.
Das Problem lag bei mir daran, dass ich mit asynchrone Verarbeitung unterwegs war. Jetzt klappt's. Danke.
Hallo,
<form action="edit.php" onSubmit="return AjaxRequest();" .....
Im Moment allerdings, egal was AjaxRequest() zurückliefert, wird das Formular versandt.
... hast du schon mal explizit geprüft, was AjaxRequest()
zurückliefert. Wenn es false
ist, findet keine action statt. Evtl bricht deine js-Funktion wegen eines Fehlers ab. Das schon mal an der Fehlerkonsole überprüft?
Gruß plan_B
Hallo plan_B,
... hast du schon mal explizit geprüft, was
AjaxRequest()
zurückliefert. Wenn esfalse
ist, findet keine action statt. Evtl bricht deine js-Funktion wegen eines Fehlers ab. Das schon mal an der Fehlerkonsole überprüft?
Danke für den Denkanstoss. Jetzt habe ich verstanden, dass ich auch einen unlogischen Ansatz hatte. Asynchrone Verarbeitung war hier fehl am Platz. AJAX hat sein Dienst gut getan, allerdings wartete die Seite nicht auf die Antwort :)