Thomas: Formulare

Hallo zusammen,
habe das Problem das ich ein Formular habe und eine Fehlermeldung beim absenden erscheinen soll,wenn:

<td><input name="Betrag" size="10" maxlength="10"></td>

kleiner als 150 angegeben ist und gleichzeitig

<input name="Werbung" value="Ja" type="radio">Ja<br>
<input name="Werbung" value="Nein" type="radio">Nein<br>

auf Ja angeklickt ist.

Wäre nett wenn mir jemand helfen könnte.
Thomas

  1. Hi,

    Wäre nett wenn mir jemand helfen könnte.

    Erste Hilfe

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Also gut, hier der ganze html-Code, mehr kann ich leider auch nicht sagen. Das Problem ist, wie oben bereits gesagt, dass wenn der Wert des Feldes Betrag kleiner als 150 ist, und der wert des Feldes Werbung ja ist,
      dann eine Fehlermeldung kommen soll.(beides steht fast ganz unten)

        
      <body  
       style="color: rgb(0, 0, 0); background-color: rgb(204, 204, 204); background-image: url(hintergrund.jpg);"  
       alink="#000099" link="#000099" vlink="#990099">  
      Spende<br>  
      <form action="mailto:thomas.95.lindner@googlemail.com"  
       method="get" enctype="text/plain">  
        <div style="text-align: right; margin-top: 13px; height: 7px;"></div>  
        <table  
       style="background-color: rgb(204, 204, 204); width: 797px; height: 492px;"  
       border="0" cellpadding="5" cellspacing="0">  
          <tbody>  
            <tr>  
              <td style="text-align: left; width: 87px; height: 31px;">Name:</td>  
              <td style="width: 684px; height: 31px;"><input  
       name="name" size="30" maxlength="30" type="text"></td>  
            </tr>  
            <tr>  
              <td style="text-align: left; width: 87px; height: 35px;">Firma:</td>  
              <td style="width: 684px; height: 35px;"><input  
       name="Vorname" size="30" maxlength="40"  
       type="text"></td>  
            </tr>  
            <tr>  
              <td style="text-align: left; width: 87px; height: 33px;">Telefon:</td>  
              <td style="width: 684px; height: 33px;"><input  
       name="Vorwahl" size="5" maxlength="5">&nbsp;<input  
       name="Telefon" size="30" maxlength="40"></td>  
            </tr>  
            <tr>  
              <td style="text-align: left; width: 87px; height: 35px;">e-mail:</td>  
              <td style="width: 684px; height: 35px;"><input  
       name="e-mail" size="40" maxlength="60"></td>  
            </tr>  
            <tr>  
              <td style="text-align: left; width: 87px; height: 59px;"  
       valign="top">Spende:<br>  
              </td>  
              <td style="width: 684px; height: 59px;"> <input  
       name="Zahlungsdauer" value="Einmalige Spende"  
       type="radio"> Einmalige Spende<br>  
              <input name="Zahlungsdauer"  
       value="Monatliches Sponsoring" type="radio">Monatliches  
      Sponsoring<br>  
              </td>  
            </tr>  
            <tr>  
              <td>Betrag:</td>  
              <td><input name="Telefon" size="10"  
       maxlength="10"></td>  
            </tr>  
            <tr>  
              <td>Spendenquittung:</td>  
              <td> <input name="Spendenquittung" value="Ja"  
       type="radio">Ja<br>  
              <input name="Spendenquittung" value="Nein"  
       type="radio">Nein<br>  
              </td>  
            </tr>  
            <tr>  
              <td style="width: 87px; height: 298px;" align="right">Werbung  
      auf der Website:</td>  
              <td style="width: 684px; height: 298px;"> <input  
       value=" Absenden " type="submit"> <input  
       value=" Abbrechen" type="reset"> </td>  
            </tr>  
          </tbody>  
        </table>  
      </form>  
      </body>  
      
      
      1. Ok danke, dann muss es wohl so bleiben.

        1. Hallo

          Ok danke, dann muss es wohl so bleiben.

          Dass die Prüfung der Eingaben auf dem Server (z.B. mit PHP, Perl, Python, also einer serverseitigen Programmiersprache) zu erfolgen hat, hat Klawischnigg schon gesagt. Dass man das zusätzlich[1] per JavaScript erledigen kann, auch. Steht dir auf deinem Webspace/Server einen Interpreter für eine der Programmiersprachen zur Verfügung (PHP ist heute in den allermeisten Fällen vorhanden, Perl auch sehr oft)?

          Falls ja, wird das Prüfskript im Action-Attribut des Formulars angegeben. Die Daten des Formulars werden dann an das Skript gesendet und können dort ausgewertet werden. Natürlich kann bei einer Fehleingabe auch eine Fehlermeldung mit Wiedervorlage des Formulars generiert werden.

          [1] Man kann sich nicht darauf verlassen, dass JavaScript aktiviert ist. Deshalb: "zusätzlich"

          Tschö, Auge

          --
          Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
          Terry Pratchett, "Wachen! Wachen!"
          Veranstaltungsdatenbank Vdb 0.3
      2. Hi,

        Also gut, hier der ganze html-Code, mehr kann ich leider auch nicht sagen.

        Warum nicht? Die Tipps für Fragende sagen dir doch, dass du uns bspw. sagen sollst, was du bisher probiert hast, wie dein Ansatz lautet, etc.

        Das Problem ist, wie oben bereits gesagt, dass wenn der Wert des Feldes Betrag kleiner als 150 ist, und der wert des Feldes Werbung ja ist, dann eine Fehlermeldung kommen soll.

        Ja, schön - das ist die Beschreibung der Aufgabe.

        Wenn du allerdings glaubst, dass es ausreichend wäre, nur deinen HTML-Code hier abzuladen, damit das irgend jemand für dich fix und fertig macht, so dass du es nur noch zu kopieren brauchst - dann liegst du falsch.

        Also, du hast als Ansatz genannt bekommen, dass die Prüfung auf jeden Fall serverseitig nach, und optional clientseitig vor dem Abschicken erfolgen sollte.
        Wie weit bist du jetzt damit, dich zu informieren, welche Techniken dir überhaupt zur Verfügung stehen?
        Und wie weit mit der Einarbeitung in deren grundlegende Funktionsweise und den Umgang mit Formularen bzw. den von diesen gesendeten Daten?

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
        1. @@ChrisB:

          nuqneH

          Wenn du allerdings glaubst, dass es ausreichend wäre, nur deinen HTML-Code hier abzuladen, damit das irgend jemand für dich fix und fertig macht, so dass du es nur noch zu kopieren brauchst - dann liegst du falsch.

          Genau. Er muss uns noch sein FTP-Login samt Passwort mitteilen, damit wir das fix und fertig auf seinen Webspace spielen können.

          Qapla'

          --
          Volumen einer Pizza mit Radius z und Dicke a: pi z z a
      3. Guten Morgen!
        Ach du meine Güte, mit dem Code traust du dich hier her und wirst nicht verrissen?
        Also dass das 'ne Tabelle ist halte ich mal für vertretbar, immerhin hat es entfernt was mit einer Tabelle zu tun. Fraglich ist allerdings warum du keine <label>-Elemente verwendest (dieses Forumular ist prädestiniert dafür) und wozu die ganzen inline-styles? Die wiederholen sich auch noch alle!
        Und wenn du schonmal dabei bist würde ich inhaltsleere Elemente noch schließen (die ganzen Inputs und brs mit /> beenden) und die Färbung von Links aus dem body-Tag rausnehmen und ebenfalls in ein Stylesheet schreiben (ich nehme mal an, dass da Links sind, die du nur nicht mitgeteilt hast).
        Oh mir fällt noch mehr auf:
        Ist es wirklich gewünscht dass das Formularfeld hinter "Firma" den Namen "Vorname" trägt?
        Woher weiß der Benutzer dass er bei "Telefon" Vorwahl und Rufnummer angeben soll und nicht zwei Telefonnummern?
        "Zahlungsdauer" würde ich persönlich als select-Element realisieren, ist aber wohl Geschmackssache.
        Hinter "Betrag" wird das Feld mit dem Namen "Telefon" neu belegt und damit das erste überschrieben.

        Da dein Formular direkt an den Mail-Client des Benutzers geht halte ich eine serverseitige Prüfung für nicht so wichtig, zumal es hier auch nur darum geht den Benutzer darauf hinzuweisen, dass seine Eingabe so keine Gültigkeit hat und sein "Antrag" so nicht akzeptiert werden wird.
        Also machst du das mit JavaScript. Wie gut sind deine Kenntnisse darin?
        Ich würde mich nun gerne an deinem Code orientieren, aber du hast scheinbar die betrefflichen Teile nicht mitgegeben. (Hinter "Betrag" steht ein Feld namens "Telefon" und hinter "Werbung" stehen submit und reset)

        Hier also eine grobe Anleitung:
        Verpasse den relevanten Eingabefeldern eine ID, damit du sie mit JS gut anfassen kannst.
        Beim Verlassen des Feldes (onBlur) wo der Betrag eingegeben wird deaktivierst du "Werbung: Ja" (also .disabled = "disabled" und das "checked"-Attribut entfernt) und du kreuzt direkt auch "nein" an.
        Wenn sich der Benutzer darüber hinweg setzt und dennoch "ja" ankreuzt (geht mit diversen Browsererweiterungen), dann gib ihm 'n alert dass er das lassen soll, weil sein Antrag sonst abgelehnt/weiter besprochen werden muss und wenn du möchtest kannst du erneut "nein" ankreuzen und "ja" abkreuzen.

        Soweit erstmal für näheres müsstest du dein Formular etwas aufräumen.

        --
        sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(
        1. [latex]Mae  govannen![/latex]

          Ach du meine Güte, mit dem Code traust du dich hier her und wirst nicht verrissen?

          *g*

          Und wenn du schonmal dabei bist würde ich inhaltsleere Elemente noch schließen (die ganzen Inputs und brs mit /> beenden)

          Wieso? Das wäre mit sehr hoher Wahrscheinlichkeit falsch, außer XHTML wird verwendet, und danach sieht es eher nicht aus..

          Hier also eine grobe Anleitung:
          Verpasse den relevanten Eingabefeldern eine ID, damit du sie mit JS gut anfassen kannst.

          Das ist -nur zu diesem Zweck- nicht notwendig

          Beim Verlassen des Feldes (onBlur) wo der Betrag eingegeben wird deaktivierst du "Werbung: Ja" (also .disabled = "disabled" und das "checked"-Attribut entfernt) und du kreuzt direkt auch "nein" an.
          Wenn sich der Benutzer darüber hinweg setzt und dennoch "ja" ankreuzt (geht mit diversen Browsererweiterungen), dann gib ihm 'n alert dass er das lassen soll, weil sein Antrag sonst abgelehnt/weiter besprochen werden muss und wenn du möchtest kannst du erneut "nein" ankreuzen und "ja" abkreuzen.

          Nutzergängelung ist nie eine gute Idee.

          Cü,

          Kai

          --
          Deutsches Liedgut international:
          In early rope to mountain we pull
          Foren-Stylesheet Site Selfzeug JS-Lookup
          SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
          1. Wieso? Das wäre mit sehr hoher Wahrscheinlichkeit falsch, außer XHTML wird verwendet, und danach sieht es eher nicht aus..

            Bitte korrigier' mich aber soweit ich weiß ist es in allen modernen HTML-Versionen richtig, in XHTML Pflicht in den anderen halt optional.
            Und es ist wie ich schrieb "ich würde" :)

            Das ist -nur zu diesem Zweck- nicht notwendig

            Igitt, naja persönliche Präferenz, ich mag das "elements"-Objekt nicht und verwende es daher nie. Auch dann nicht, wenn ich nur Formularfelder verarbeite.

            Nutzergängelung ist nie eine gute Idee.

            Richtig, das sehe ich genauso, ob das hier vorliegt ist die Frage. Ich würde das als Eingabehilfe bezeichnen, wenn wenn die Spendensumme unter 150 liegt ist klar, dass der Spender keine Werbung schalten möchte, also kann man diese Eingabe schonmal für ihn tätigen.
            Es wäre hingegen Benutzerunfreundlich die Ansage einfach so durchzulassen und dann nach manueller Prüfung mit dem Spender in Korrespondenz treten muss und ihm erklärt, dass das leider nicht geht und ob er die Summe erhöhen möchte oder doch keine Werbung schalten oder ob er jetzt ganz von seiner Spende absieht oder... wie gesagt ich halte das für eine Eingabeunterstützung.
            Ein paar werden mangels JS eh durchflutschen, aber man senkt den Aufwand.

            Also: 3x eben meine Meinung oder mein Geschmack ^^ Dennoch hast du natürlich in keinem Punkt unrecht Kai. Ich seh's halt nur anders :)

            --
            sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(
            1. @@Deus Figendi:

              nuqneH

              Wieso? Das wäre mit sehr hoher Wahrscheinlichkeit falsch, außer XHTML wird verwendet, und danach sieht es eher nicht aus..
              Bitte korrigier' mich aber soweit ich weiß ist es in allen modernen HTML-Versionen richtig, in XHTML Pflicht in den anderen halt optional.

              <br/> wäre in HTML nicht falsch; allerdings bedeutet es etwas anderes als in XHTML:

              '/' schließt das 'br'-Tag, '>' ist dann ein normales Textzeichen, dass im Viewport dargestellt werden müsste. (Die meisten Browser tun dies aber nicht.) Hier würde der Validator keinen Fehler melden.

              Anders bei

              <head>  
                <title>Lorem ipsum</title>  
                <link rel="stylesheet" href="foo"/>  
              </head>
              

              '/' schließt das 'link'-Tag, '>' ist Text, solcher darf aber im 'head' nicht vorkommen. Hier würde der Validator einen Fehler melden.

              In HTML5 wird die Schreibweise mit '/' bei leeren Elementen erlaubt sein und dasselbe bedeuten wie in XHTML5.

              Qapla'

              --
              Volumen einer Pizza mit Radius z und Dicke a: pi z z a
              1. '/' schließt das 'br'-Tag, '>' ist dann ein normales Textzeichen

                Danke Gunnar, das wusste ich nicht. Wieder was gelernt (find`s zwar dohv aber... was soll's ^^)

                --
                sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(
  2. HI there,

    Wäre nett wenn mir jemand helfen könnte.

    Validierung von Formulareingaben können mit HTML nicht durchgeführt werden. Das funktioniert nur mit (clientseitigem) Javascript oder serverseitiger Programmiersprache, idealerweise mit beiden (Javascript für die Bequemlichkeit des Anwenders und serverseitig für die Sicherheit)...