Pampel: Formularfelder vorausfüllen

Hallo zusammen,

in einer Internetseite wird von mehreren Stellen auf das (eine) Kontaktformular verwiesen.

Wie kann ich in diesem Formular nach dem Aufruf ein bestimmtes Feld schon mit einer bestimmten Information vorausfüllen, so dass z.B. der "Betreff" schon ausgefüllt ist?

Danke für Hinweise.

Gruß,

Stefan

  1. Moin,

    Wie kann ich in diesem Formular nach dem Aufruf ein bestimmtes Feld schon mit einer bestimmten Information vorausfüllen, so dass z.B. der "Betreff" schon ausgefüllt ist?

    Wenn es immer der gleiche Text sein soll: http://de.selfhtml.org/html/formulare/eingabe.htm#felder_vorbelegung@title=value-Attribut.
    Wenn es aber immer unterschiedlich sein soll musst du per get den gewünschten Text an die URL anhängen. Den kannst du dann per JavaScript oder (besser!) serverseitig in das Feld schreiben (wieder mit value).

    Gruß,

    Stefan

    Grüße,
    Take

    1. Wenn es immer der gleiche Text sein soll: http://de.selfhtml.org/html/formulare/eingabe.htm#felder_vorbelegung@title=value-Attribut.
      Wenn es aber immer unterschiedlich sein soll musst du per get den gewünschten Text an die URL anhängen. Den kannst du dann per JavaScript oder (besser!) serverseitig in das Feld schreiben (wieder mit value).

      Moin.

      da kann von "müssen und get" aber gar nicht die Rede sein. Woher er seinen Inhalt für das Value nimmt, ist doch völlig nebensächlich. Das kann er auch aus einer DB herausholen oder aus einem Textfile oder per POST.

      Grüße, Basti

      1. Hello,

        Wenn es immer der gleiche Text sein soll: http://de.selfhtml.org/html/formulare/eingabe.htm#felder_vorbelegung@title=value-Attribut.
        Wenn es aber immer unterschiedlich sein soll musst du per get den gewünschten Text an die URL anhängen. Den kannst du dann per JavaScript oder (besser!) serverseitig in das Feld schreiben (wieder mit value).

        da kann von "müssen und get" aber gar nicht die Rede sein. Woher er seinen Inhalt für das Value nimmt, ist doch völlig nebensächlich. Das kann er auch aus einer DB herausholen oder aus einem Textfile oder per POST.

        Ja, das kann er.
        Aber er muss, wenn es in jeder Seite ein Link auf dieselbe Stammressource ist, einen Get-Parameter anhängen, oder eine Pathinfo mitgeben, der/die kennzeichnet, von welcher Seite das Kontaktformular aufgerufen worden ist.

        Diesen Parameter (z.B. die Seitennummer) kann er dann übersetzen, was ohnehin sicherer ist, weil dann keine gefährlichen Inhalte eingeschleppt werden können.

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Neben POST und GET kann man auch den Referrer nehmen, wenn es darum geht von verschiedenen Seiten zu kommen.
          Wenn es dabei Seiten gibt, die eine ganze uListe von Links enthalten "Fragen zu (...)", dann geht das natürlich nicht.

          An der Stelle würde ich tatsächlich auf GET (weil kein Formular nötig ist) bzw. Referrer  und JavaScript zurück greifen, soll sich der Client damit rumschlagen :D Und es ist wohl nicht so essenziell für die Bedienung der Seite, dass es tragisch wäre, wenn JS mal abgeschaltet ist (dann trägt man den Betreffen eben von Hand ein).

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

            Neben POST und GET kann man auch den Referrer nehmen, wenn es darum geht von verschiedenen Seiten zu kommen.

            Nicht, wenn es in der Praxis funktionieren soll.

            MfG ChrisB

            --
            RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
            1. Neben POST und GET kann man auch den Referrer nehmen, wenn es darum geht von verschiedenen Seiten zu kommen.

              Nicht, wenn es in der Praxis funktionieren soll.

              Das stimmt natürlich... Referrer überträgt natürlich nicht jeder (aber verblüffend viele).
              Ich habe das hier nur vorgeschlagen, weil die Funktionalität eh nur "oben drauf" ist und nicht essenziell.

              1. Moin!

                Ich habe das hier nur vorgeschlagen, weil die Funktionalität eh nur "oben drauf" ist und nicht essenziell.

                Sagen wir, Du hast dem Fragesteller überlassen ob er es dafür hält.

                MFFG (Mit freundlich- friedfertigem Grinsen)

                fastix

                1. Liebe Leute,

                  vielen Dank für Eure Diskussion - allein, sie hat mich nicht weitergebracht. Dass ich mit der Textvorbelegung bei einzeiligen Eingabefeldern einen Wert in ein Formularfeld reinschreiben kann, weiß ich. Ich will aber doch nicht ca. 15 verschiedene Kontaktformulare mit dieser Technik vorbelegen.

                  Ich habe eben ca. 15 Seiten, die alle auf EIN Kontaktformular verweisen sollen. Damit der Betreiber der Seite aber weiß, woher das Kontaktformular aufgerufen wurde, möchte ich mit jedem "individuellen" aufrufenden Link zum Kontaktformular auch eine Information im Sinne von "Aufruf durch Seite a.html", "Aufruf durch Seite b.html" usw. in ein Formularfeld reinschreiben.

                  Mir ist dabei klar, dass das vom Absender auch wieder gelöscht werden kann. Daher stelle ich mir vor, dass man die Information "Aufruf von ...." in ein verstecktes Feld (<input type="hidden"....) schreiben könnte.

                  Nur: Geht das, und wenn ja: Wie??? Ich bin nicht der Freak, der sich das aus all den Hinweisen zusammenbasteln kann (rein zeitlich gesehen). Ich bräuchte aber auch keine fertige Lösung, sondern ein "Kochrezept": 1. ...., 2. ...., 3. ... usw.

                  Vielen Dank.

                  Gruß,

                  Stefan

                  1. Mir ist dabei klar, dass das vom Absender auch wieder gelöscht werden kann. Daher stelle ich mir vor, dass man die Information "Aufruf von ...." in ein verstecktes Feld (<input type="hidden"....) schreiben könnte.

                    Nur: Geht das, und wenn ja: Wie???

                    Ja und nein, das geht mit den hier vorgeschlagenen Methoden nicht, denn:
                    * JavaScript könnte abgeschaltet sein
                    * Referrer können unterdrückt werden (machen manche PFWs und wahrscheinlich jeder Browser im Privat-Modus).
                    * Auch Inputfelder vom Typ "hidden" können manuell verändert, hinzugefügt, entfernt oder sonst was werden, der User entscheidet darüber was er dir sendet und was nicht.

                    Wenn es also doch nicht "oben drauf" ist kommen die o.g. Vorschläge nicht in Frage, dann ist die einzige(?) sichere(?) Lösung:
                    Sessions!

                    Auf den Seiten, die zum Kontaktformular führen erstellst du eine Session. Im Zweifel kann das irgendeine zufällige Zeichenfolge sein, im Grunde gibst du dem Besuch(er) einen internen Namen.
                    Diese Zeichenfolge speicherst du zusammen mit einem "Verfallsdatum" auf dem Server ab (Datei, Datenbank, Arbeitspeicher... irgendwo) und gibst sie auch dem User mit auf den Weg.
                    Dem User mitgeben: Entweder via GET indem du die Zeichenfolge einfach in die Link-URLs schreibst oder via POST indem die Links keine Links sondern Formulare sind oder via COOKIE.
                    Dann gelangt der User zum Kontaktformular. Wenn du die Session per GET oder POST übertragen hast musst du sie wieder irgendwie ins Formular bringen. Als hidden-Input oder u.U. als GET-Parameter im target-Attribut des Formulars.
                    Der Benutzer füllt das Formular aus und schickt es ab. Der Server nimmt das Formular wie auch die Session-ID entgegen. Prüft ob die Session gültig ist (in seiner Datenbank, Datei, whatever) und falls dem so ist stellt er den Kontakt her (verschickt wahrscheinlich eine Email oder schreibt den Inhalt auch in eine Datenbank) und löscht die Session aus der Datenbank (oder was auch immer). Ist die Session-ID ungültig, z.B. weil der Benutzer sie verändert hat oder von einer unberechtigten Seite aus auf das Kontaktformular gelinkt wurde wird ein Fehler zurück gegeben (du kannst diese Prüfung auch schon beim Aufruf des Formulars durchführen aber du _musst_ sie beim Empfang durchführen).

                    Sporadisch kannst oder solltest du abgelaufene Sessions aus deiner Datenbank (etc.) entfernen. Kann man auch lassen, aber dann wird sie unnötig voll.

                    Viele Sprachen bieten spezielle Session-Module, die kannst du dafür nutzen oder alles von Hand machen.

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

                      Danke, das hilft mir schon sehr viel.

                      Stefan

                  2. (Kleiner Nachtrag):

                    Ich will aber doch nicht ca. 15 verschiedene Kontaktformulare mit dieser Technik vorbelegen.
                    Ich habe eben ca. 15 Seiten, die alle auf EIN Kontaktformular verweisen sollen.

                    Fast alle oben beschriebenen Varianten gehen davon aus, dass du EIN Kontaktformular und viele Ursprungs-Seiten hast.

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