Formularüberprüfung mit ASP
Markus
- asp.net
Hi Leute
Wie mache ich mit ASP eine Formularüberprüfung ob Felder ausgefüllt bzw richtig ausgefüllt sind?
Hab ein Eintragungsformular eintrag.asp und dies wird dann an eine Bestätigungseite best.asp mit "Post" gesendet.
Mit javascript geht das ja einfach:
zb;
<script language="JavaScript">
<!--
function chkFormular()
{
if(document.Formular.Branche.value == "")
{
alert("Bitte eine Branchenbezeichnung eingeben!");
document.Formular.Branche.focus();
return false;
}
if(document.Formular.Branche.value.length < 2)
{
alert("Bitte geben Sie mindestens 2 Zeichen ein!");
document.Formular.Branche.focus();
return false;
}
</script>
das wird bei onsubmit= chkFormular() aufgerufen..
Wie löse ich das mit ASP???
Da es ja einige User gibt die Javascript deaktiviert haben??
MFG
Markus
hi
Wie löse ich das mit ASP???
du übergibst alle einträge an eine ASP seite auf der du diese überprüfst...sind alle daten korrekt eingetragen, werden die formulardaten weiterverarbeitet, stimmt was nicht, so wird meldung gemacht und auf die formularseite zurückgesprungen.
so long
ole
(8-)>
Hi
OK ich übergebe an eine ASP Seite und überprüfe aber dann darf ja nichts auf der Seite zu sehen sein wenn etwas falsch ist..
wie springe ich auf die Formularseite zurück..
stelle mir das so vor übergebe an best.asp die daten dort wird gechecked.. im <head>
wenn check ok dann schreibe denn <body>
ansonsten gleich zurück zu eintrag asp u direkt auf das Feld mit Focus ( wie wird das zurück und der focus realisiert?)
Bitte um korrektur wenn ich was falsch verstanden habe
Danke
MFG
Markus
du übergibst alle einträge an eine ASP seite auf der du diese überprüfst...sind alle daten korrekt eingetragen, werden die formulardaten weiterverarbeitet, stimmt was nicht, so wird meldung gemacht und auf die formularseite zurückgesprungen.
Hi
OK ich übergebe an eine ASP Seite und überprüfe aber dann darf ja nichts auf der Seite zu sehen sein wenn etwas falsch ist..
du erzeugst mit der seite einfach keine ausgabe, dann ist auch nichts zu sehen.
wie springe ich auf die Formularseite zurück..
gibt mind. 2 möglichkeiten...die einfache wäre mit javascript und history.back()
die schönere wäre, die seite neu aufzurufen und ihr entsprechende paramter mitzugeben, das a) alle formulareingaben vorhanden sind und nicht wieder neu eingegeben werden müssen und b) auf die fehler hingewiesen wird indem z.B. die formularfelder eingefärbt werden
stelle mir das so vor übergebe an best.asp die daten dort wird gechecked.. im <head>
wenn check ok dann schreibe denn <body>
nimm für das überprüfen eine eigene seite und leite bei erfolg auf die seite weiter die eine ausgabe geben soll.
ansonsten gleich zurück zu eintrag asp u direkt auf das Feld mit Focus ( wie wird das zurück und der focus realisiert?)
schau dir mit diesem stichpunkt einfach mal den javascriptteil von selfhtml an http://selfhtml.teamone.de/javascript/objekte/elements.htm#focus
so long
ole
(8-)>
Hi,
es gibt in ASP z.B. den Befehl Response.Redirect wenn ich nicht ganz falsch liege (aber irgendwie so heißt er) - Da du aber sowieso eine Meldung ausgeben solltest (woher soll der User sonst wissen was falsch ist), schlage ich vor die Eingaben zu prüfen, eine Meldung über die Fehler in die Seite zu schreiben und einen Link wie "Zurück zum Formular" anzubieten (da ist es dann eine Frage des Benutzer-Service, ob du die alten Werte automatisch wieder einträgst, was du aber tun solltest...).
MfG
Rouven
Hi Markus,
Das ganze geht so:
dim strMsg
prüfe daten, wenn fehler dann strMsg = strMsg & "Fehlerbeschreibung"
if strMsg = "" then
<schreibe in datenbank>
response.redirect("ergebnis.asp")
end if
Jetzt repliziere das html formular dies wird ausgegeben, sollte der fehler string nicht leer sein und fülle mittels der value tags die input felder im voraus mit den alten daten aus.
Gruß
Netghost
Hi
Verstehe es noch nicht ganz:
Habe ein Eintragsformular eintrag.asp das wird nun an ein check.asp verwiesen und dann dort geprüft:
dim strMsg
If Request.Form("Name") = "" Then
strMsg = "Bitte Namen ausfüllen"
Else if Request.Form("Name") = // wie frage ich die länge ab mind 2 Buchstaben?
Then
strMsg = strMsg & "Bitte einen richtigen Namen eingeben"
End If
If Request.Form("Ort") = "" Then
strMsg = "Bitte Ort ausfüllen"
Else if Request.Form("Ort") = // wie frage ich die länge ab mind 2 Buchstaben?
Then
strMsg = strMsg & "Bitte einen richtigen Ort eingeben"
End If
...usw..
Dann:
if strMsg = "" then
response.redirect("ergebnis.asp") // dort wird in Datenbank geschrieben - geht das?
else das ganze html formular mit den values vorgeben... aber wie kann ich dann die Fehlerfelder fokusieren?
end if
dann werden die angaben richtig geändert und der abschicken button geht nun auf ergebnis.asp -> eintrag in DB u Mailversand
wenn eintrag wieder falsch geändert-- was nun??? müßte wieder an check.asp gepostet werden oder?
Bitte um Aufklärung!
MFG
Markus