gary: input"hidden" will nicht

Hallöchen zusammen,

Ich habe ein kleines Beispiel dabei, bei dem ich das Feld "Address09"
(also vielmehr den Inhalt von diesem Feld - hier vorkasse -) mit einer hidden- Anweisung mitschicken will.
Das ist alles - ich schaff es aber nicht...
_____________________________________________________

<html>
<head>
<title>xs_cgi_test</title>
<script type="text/javascript">

function chkFormular () {
  if (document.Formular.Anrede.value == "") {
    alert("Bitte Ihre Anrede eingeben!");
    document.Formular.Anrede.focus();
    return false;
  }
}

</script>
</head>
<body>

<input type="text" name="Address09" size="20" value="Vorkasse" readonly>

<h1>Formular</h1>

<form name="Formular" action="http://www.url......."
  method="post" onsubmit="return chkFormular()">

<pre>
<input type="hidden" name="recipient" value="e@mail">
<input type="hidden" name="redirect" value="http://www.url........">
Anrede:  <input type="text" size="40" maxlength="40" name="Anrede">

Formular: <input type="submit" value="Absenden"><input type="reset" value="Abbrechen">

</pre>
</form>

</body>
</html>
_________________________________________________________

Hat einer ne Idee ?

gruss gary

  1. Sup!

    Vielleicht wäre es hilfreich, wenn das Formular-Feld in dem Formular drinstehen würde, das verschickt wird?

    Gruesse,

    Bio

    --
    Never give up, never surrender!!!
    1. Vielleicht wäre es hilfreich, wenn das Formular-Feld in dem Formular drinstehen würde, das verschickt wird?

      Hi,

      Das unten ins Formular was rein muss weis ich. Ich hab es freigelassen, weil ich eben nicht weiss,was da reingehört.

      Das Feld"Address09" steht als Beispiel für verschiedene Felder auf einer Homepage. Wenn ich bei einem Feld herausbekomme , wie ich es unten mitschicken kann, dann kann ich sämtliche anderen Felder ebenfalls anpassen.

      Gruss gary

      1. Hallihallo,

        Ich hab jetzt das senden der Daten in meine Homepage eingebaut. Das funktioniert für die Daten die zwischen...

        <form name="Formular" action="http://www.

        ...und dem </form>

        stehen einwandfrei. Nach dem "submit" springt er auch in die:

        function chkFormular () {
            document.getElementsByName("Bestellmenge00").value = (document.Box00.D00.options[i].value);

        zeile ( Das habe ich mit Alert getestet). Und jetzt wirds spannend.
        Ich möchte dem Hiddenfeld, welches im regulärem Sendeblock steht
        einen Wert zuweisen, den er oben im function chkFormular per Script
        diesem Hiddenfeld übergibt.

        <input type="hidden" name="Bestellmenge00">

        Der zu übergebende wert steckt definitiv in diesem Ausdruck:

        (document.Box00.D00.options[i].value)

        Das ist 100% der richtige syntax. Nur ob mit oder ohne Klammer weis ich nicht.

        Fraglich ist diese Zeile die für die Hiddenanweisung gedacht ist:

        document.getElementsByName("Bestellmenge00").value =

        So weit so gut.

        gruss Gary

  2. Hallo gary,

    Ich habe ein kleines Beispiel dabei, bei dem ich das Feld "Address09" (also vielmehr den Inhalt von diesem Feld - hier vorkasse -) mit einer hidden- Anweisung mitschicken will.

    ich wollte erst schreiben: Da ist aber kein Feld mit dem Namen "Address09".

    <body>
    <input type="text" name="Address09" size="20" value="Vorkasse" readonly>
    <h1>Formular</h1>

    <form name="Formular" action="http://www.url......."
      method="post" onsubmit="return chkFormular()">

    Aber es ist ja doch da. Nur ist es nicht innerhalb des Formulars, also wird es auch nicht mit dem Formular verschickt.

    So long,
     Martin

    --
    Kleine Geschenke erhalten die Freundschaft.
    Große verderben sie aber meist auch nicht.
    1. Hi Martin,

      Habe unterhalb von Anrede folgendes angefügt:

      <form name="Formular" action="www.url......"
        method="post" onsubmit="return chkFormular()">

      <pre>
      <input type="hidden" name="recipient" value="e@mail.com">
      <input type="hidden" name="redirect" value="http://www.url...>
      Anrede:  <input type="text" size="40" maxlength="40" name="Anrede">
      _________________________________________
      <input type="hidden" name="Address09">
      _________________________________________

      verschickt wird aber trotzdem nichts...

      Gruss gary

      1. Sup!

        <input type="hidden" name="Address09">

        Jetzt hat es ja auch gar keinen Wert, Gary...

        Gruesse,

        Bio

        --
        Never give up, never surrender!!!
        1. Sup!

          <input type="hidden" name="Address09">

          Jetzt hat es ja auch gar keinen Wert, Gary...

          Wie jetzt? da steht doch per value "vorkasse drin. Man kann doch "vorkasse" auf dem Monitor lesen, wenn man das Beispiel startet.

          Häää ???

          gruss gary

          1. Hi nochmal,

            <input type="hidden" name="Address09">

            Schönes Feld, so schön leer, ohne jeden Inhalt, aber wenigstens hat es einen Namen und einen Typ, das ist guuut.

            Wie jetzt? da steht doch per value "vorkasse drin.

            <input type="hidden" name="Address09">

            Wo jetzt? Etwa mit unsichtbarer Tinte ;)? Im Formular steht nichts dergleichen...

            Don P

            1. Nachtrag:

              Also nochmal ganz langsam:
              Ein Formular beginnt mit <form ...> und endet mit </form>. Alles was dazwischen mit <input ...> steht, sind Formularfelder, die man mit dem Formular verschicken kann, d.h. nur deren Inhalte natürlich.

              Alles was außerhalb von <form ...> ... </form> Steht, ist *kein* Inhalt, den man mit dem Formular verschicken könnte, auch dann nicht, wenn Eingabefelder <input ...> dabei sind, ok?

              Schau dir doch einfach die Beispiele in SelfHTML zu <form> usw. an und versuche sie zu verstehen, dann wird alles leichter.

              Gruß, Don P

              1. Hoi Don P,

                Also:
                Ein formular wird erstellt durch den  Einleitungs- Tag und den Ausleitungs Tag (<form> </form>). Innerhalb dieses Rahmens funktioniert der Input- Befehl. Natürlich auch versteckte (hidden). Das heist, wenn ich einen Wert schicken möchte, der ausserhalb dieses Rahmens liegt, muss ich den irgendwie in den Rahmen bekommen. Soweit richtig ?

                O gottogott , gruss gary

                1. Hoi,

                  Ja, du hast es erfasst!

                  Wenn du einen Wert von ausserhalb des Formulars mitschicken willst, musst du diesen zuerst in das Formular hineinbekommen. Das ist machbar, den Fall hatten wir z.B. gestern abend mit dem artikel-Feld, dessen Wert aus einem anderen Formular kam und dann per javascript als Wert für ein Feld im zu verschickenden Formular übertragen wurde.

                  Don P

                  1. Solli Don P,

                    Ja genau, das war der erste versuch. Das problem war hierbei, das es sich um den wert eines Auswahlfeldes handelte.
                    Das war zu schwierig und hat desshalb nicht funktioniert.

                    Ich würde mich, als Kompromisslösung auch damit anfreunden, "normale Felder" per script auszulesen und zu verschicken. Dann sieht z.B. die Bürodame in der Zeile Pic01 einen wert von 7,90 und weiss dann der kunde hat zwei bestellt (da ja eine 3,95 kostet).

                    Also muss ich nicht unbedingt Auswahlfelder auslesen.

                    Aber selbts "normale Felder sind schwer zu verschicken.

                    Der Martin brachte den Ansatz, alle felder in ein Formular zu packen. Ich muss schauen, ob ich die Einzelfelder, die ich momentan habe in eines bekomme. Bin gespannt ob das so ohne weiteres geht.

                    Danke trotzem Gary

          2. Sup!

            Vielleicht postest Du Deinen aktuellen Code nochmal als ganzes, es kann nämlich niemand nachvollziehen, was Du genau gemacht hast.

            Gruesse,

            Bio

            --
            Never give up, never surrender!!!
            1. Sup!

              Vielleicht postest Du Deinen aktuellen Code nochmal als ganzes, es kann nämlich niemand nachvollziehen, was Du genau gemacht hast.

              Den gesammten code posten geht nicht. Zuuuuu lang. Ich poste nochmal das
              kleinere Beispiel, das ich später einbauen möchte:

              <html>
              <head>
              <title>xs_cgi_test</title>
              <script type="text/javascript">

              function chkFormular () {
                if (document.Formular.Anrede.value == "") {
                  alert("Bitte Ihre Anrede eingeben!");
                  document.Formular.Anrede.focus();
                  return false;
                }
              }

              </script>
              </head>
              <body>

              <input type="text" name="Address09" size="20" value="Vorkasse" readonly>

              <h1>Formular</h1>

              <form name="Formular" action="http://www......."
                method="post" onsubmit="return chkFormular()">

              <pre>
              <input type="hidden" name="recipient" value="e@mail...">
              <input type="hidden" name="redirect" value="http://www....">
              Anrede:  <input type="text" size="40" maxlength="40" name="Anrede">
              <input type="hidden" name="Address09">

              Formular: <input type="submit" value="Absenden"><input type="reset" value="Abbrechen">

              </pre>
              </form>

              </body>
              </html>

              Für das Verständniss (nur zur Liveansicht):

              Man gebe in die url:www.vam-shop.com ein. Klicke auf Shop. Klicke auf Deutsche Fahne. Und betrachtet das Werk. Alle Formularfelder, errechnet der PC alleine. Alle Addressangaben unten macht der Kunde(Wenn ich mal welche habe). Das heisst ich möchte alle Felder zum server schicken. Dort macht mein *FormMailer.pl ne e-mail draus und schickt sie mir. Diese Übertragung funktioniert mit dem Beispielprogramm xs.cgi einwandfrei. Wenn ich das aber auf der Shoppage verbauen will, muss ich die anderen felder ja auch zum Server schicken. Sonst weis ich ja nur die anschrift des kunden, nicht aber was er bestellt hat.

              so, ich hoffe ihr könnt bis hierher folgen.

              Tausend dank gary.

              1. Hallo,

                Ich poste nochmal das kleinere Beispiel, das ich später einbauen möchte:

                ich habe nochmal alles entfernt, was mit dem Problem nichts zu tun hat.

                <body>
                <input type="text" name="Address09" size="20" value="Vorkasse" readonly>
                <h1>Formular</h1>
                <form name="Formular" action="http://www......."
                  method="post" onsubmit="return chkFormular()">
                [...]
                <input type="hidden" name="Address09">
                Formular: <input type="submit" value="Absenden"><input type="reset" value="Abbrechen">
                [...]
                </form>

                Du hast also immer noch ein Formularfeld *außerhalb* des Formulars. Das hat keinerlei Funktion und wird auch nicht weiter beachtet.
                Im Formular hast du zwar ein Formular mit dem Namen "Address09", aber es hat keinen Inhalt, wird also dementsprechend auch nur als "Address09=" verschickt. Ein leeres Feld eben. Kann sein, dass dein Formmailer das dann komplett "wegoptimiert".

                Man gebe in die url:www.vam-shop.com ein. Klicke auf Shop. Klicke auf Deutsche Fahne.

                Herrje, warum denn so umständlich? Gib doch bitte gleich die URL der entsprechenden Seite an, also http://www.vam-shop.com/shop_de.htm, anstatt erst eine Schnitzeljagd zu veranstalten.

                Und betrachtet das Werk. Alle Formularfelder, errechnet der PC alleine.

                Sofern der Besucher Javascript in seinem Browser ausführen lässt.

                Alle Addressangaben unten macht der Kunde(Wenn ich mal welche habe). Das heisst ich möchte alle Felder zum server schicken.

                Dann verstehe ich immer noch nicht, warum du das alles in viele einzelne Formulare steckst, anstatt ein einziges, das alle Daten enthält.
                Die vielen Javascript-Funktionen zur Prüfung der einzelnen Felder kann man übrigens auch eleganter lösen, so dass man nicht mehr für jedes Feld eine Funktion hat, sondern gleichartige Felder zusammenfasst. Aber das kriegen wir später mal, wenn das Projekt grundsätzlich mal funktioniert.

                So long,
                 Martin

                --
                Wer morgens zerknittert aufsteht, hat den ganzen Tag Gelegenheit, sich zu entfalten.
                1. Hi Martin,

                  Heisst dass, das mann alle felder in ein Formular packen kann und nicht für jedes Feld (Preis00 /Preiss01 usw. ) ein eigenes Formular braucht ?

                  Dicker Gruss Gary

                  1. Hallo,

                    Heisst dass, das mann alle felder in ein Formular packen kann [...]?

                    selbstverständlich, das ist eigentlich der Normalfall. Du musst dann, vor allem in Verbindung mit Tabellen, nur darauf achten, dass die Schachtelung der HTML-Elemente korrekt ist. Falsch sind beispielsweise diese Strukturen, die man aber häufig sieht:

                    a) ~~~html <table>
                       <tr>
                       <form>
                       <td>
                       ...
                       </td>
                       </form>
                       </tr>
                       </table>

                      
                    b) ~~~html
                    <table>  
                       <tr>  
                       <td>  
                        <form>  
                       </td>  
                       ...  
                       <td>  
                        </form>  
                       </td>  
                       </tr>  
                       </table>
                    

                    Das Formular muss entweder vollständig *innerhalb* eines td-Elements liegen, oder die Tabelle(n) *vollständig* umschließen.

                    Ciao,
                     Martin

                    --
                    Schon gewusst, dass Aftershave trotz des Namens eigentlich eher fürs Gesicht gedacht ist?