Markus: Formularüberprüfung mit ASP

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

  1. 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-)>

    --
    Ein Gedicht: Alles bleibt wie immer... nur schlimmer.
    sh:( fo:) ch:| rl:° br:& n4:° ie:% mo:} va:| de:] zu:| fl:( ss:) ls: js:|
    1. 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.

      1. 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-)>

        --
        Ein Gedicht: Alles bleibt wie immer... nur schlimmer.
        sh:( fo:) ch:| rl:° br:& n4:° ie:% mo:} va:| de:] zu:| fl:( ss:) ls: js:|
        1. 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

          --

          -------------------
          ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
          1. 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

            1. 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