Formularfeld automatisch ausfüllen

Hier bekommst Du deutschsprachigen Support. Keine Fehlermeldungen oder Erweiterungswünsche bitte!
Post Reply
matzeb
Posts: 94
Joined: Tue 29. Nov 2011, 06:10

Formularfeld automatisch ausfüllen

Post by matzeb »

Hallo,

vieleicht kann mir ja jemand weiterhelfen?

Hab auf einer meiner Unterseiten mehrere Buttons die auf die Formularseite verlinken.
(mit: onclick="window.location.href='http://www.url ...)

Nun möchte ich je nachdem welchen Button ich drücke ein Formularfeld automatisch ausfüllen lassen bzw. gleich aus dem Dropdownmenü im Formular das richtige automatisch auswählen lassen.

geht das irgendwie mit "Get"

Schöne Grüße,
Matze
Old Boy
Posts: 1203
Joined: Fri 23. Nov 2012, 13:52

Re: Formularfeld automatisch ausfüllen

Post by Old Boy »

Kannst du denn nicht einfach auf unterschiedlich vorausgefüllte Formulare verlinken :?:
matzeb
Posts: 94
Joined: Tue 29. Nov 2011, 06:10

Re: Formularfeld automatisch ausfüllen

Post by matzeb »

ja, das wäre meine Notlösung. Aber find ich auf die Dauer umständlich. Weil sich öfters mal was ändert.
Das andere wäre eleganter :wink:
User avatar
Oliver Georgi
Site Admin
Posts: 9888
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: Formularfeld automatisch ausfüllen

Post by Oliver Georgi »

Das fängt man ganz einfach ab über ein Frontend Init Script, so sollte es eigentlich gehen.

Über GET Index prüfen ob der Feldwert überhaupt zulässig ist und dann per $_POST den Formularwert mitgegeben. Dann kümmert sich das Formular CP darum, dass die Werte übernommen werden. Ansonsten wird der Standard genommen.

Code: Select all

<?php
// Deine URL zum Formular example.com/formalias.html?prefill=1&field1=A&field2=B&field3=…
if(isset($_GET['prefill']) && empty($_POST)) {
    // nur erlaubte Feldnamen
    foreach(array('field1', 'field2', 'field3') as $field) {
        if(!empty($_GET[$field])) {
            // POST Variable setzen
            $_POST[$field] = clean_slweg($_GET[$field]);
        }
    }
}
?>
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
matzeb
Posts: 94
Joined: Tue 29. Nov 2011, 06:10

Re: Formularfeld automatisch ausfüllen

Post by matzeb »

ok... Sorry für meine unwissenheit. Bin da leider nicht wirklich fit da drin :oops:

Wo muss ich das jetzt genau reinbasteln?
Wenn ich das jetzt richtig rauslese ist der Code nur zum Erkennen bzw. zum Auswerten ob ein Wert übergeben wird. Ist das richtig?
Und wenn dann fehlt ja noch der Teil, den ich sozusagen in den Button einbauen muss, damit ein bestimmter Wert übergeben wird.
Oder bin ich da jetzt komplett falsch? :roll: :oops:
User avatar
Oliver Georgi
Site Admin
Posts: 9888
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: Formularfeld automatisch ausfüllen

Post by Oliver Georgi »

matzeb wrote:Oder bin ich da jetzt komplett falsch?
Ja

Steht doch alles drin, Script in neue Datei getformdata.php in template/inc_script/frontend_init packen.

Dein Formular hast Du angelegt. Felder, die Du per URL vorausfüllen möchtest, haben eine Namen, z.B. name, topic, whatever.

Dann rufe doch einfach einmal eine Beispiel-URL zum Formular Deiner Seite auf. Hänge einfach an die URL ?prefill=1&name=Dein%20Name dran.

Dann solltest Du das Prinzip verstanden haben.
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
matzeb
Posts: 94
Joined: Tue 29. Nov 2011, 06:10

Re: Formularfeld automatisch ausfüllen

Post by matzeb »

Ok das hab ich so weit ein wenig verstanden...
aber funktioniert bei mir natürlich wieder mal nicht :?

kann es sein weil ich automatisch schon ein Fragezeichen drin hab beim Aufruf der Seite?

Also wenn ich die Seite über die Navigations aufrufe, sieht meine Url standardmäßig so aus: www.example.de/index.php?mieten

wenn ich die Werte übergebe sollte die dann so aussehen?: www.example.de/index.php?mieten&name=Mustermann

dann müsste ich doch die erste Zeile so anpassen, oder?:

Code: Select all

if(isset($_GET['mieten']) && empty($_POST))
User avatar
Oliver Georgi
Site Admin
Posts: 9888
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: Formularfeld automatisch ausfüllen

Post by Oliver Georgi »

So kannst Du es natürlich auch machen, meine Lösung ist lediglich universeller, falls Du mehrere Formulare auf unterschiedlichen Seiten verwendest. Nur wichtig, noch eine Art Eindeutigkeitsprüfung zu nutzen, sodass das Script nicht auf jeder Seite in die Tiefe muss.
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
matzeb
Posts: 94
Joined: Tue 29. Nov 2011, 06:10

Re: Formularfeld automatisch ausfüllen

Post by matzeb »

Oliver Georgi wrote:So kannst Du es natürlich auch machen
Nur funktioniert es nicht :(
Muss ich im Script noch irgendwelche Anpassungen machen?

SIeht bei mir jetzt mal zum Testen so aus:

Code: Select all

<?php
// Deine URL zum Formular example.com/formalias.html?prefill=1&field1=A&field2=B&field3=…
if(isset($_GET['mieten']) && empty($_POST)) {
    // nur erlaubte Feldnamen
    foreach(array('name') as $field) {
        if(!empty($_GET[$field])) {
            // POST Variable setzen
            $_POST[$field] = clean_slweg($_GET[$field]);
        }
    }
}
?>
Oliver Georgi wrote:Nur wichtig, noch eine Art Eindeutigkeitsprüfung zu nutzen, sodass das Script nicht auf jeder Seite in die Tiefe muss.
Wie mach ich das nun wieder? :(
User avatar
Oliver Georgi
Site Admin
Posts: 9888
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: Formularfeld automatisch ausfüllen

Post by Oliver Georgi »

Ab jetzt beginnt das Deuten per Glaskugel. Sorry, dazu fehlt mir die Zeit und die Lust.
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
matzeb
Posts: 94
Joined: Tue 29. Nov 2011, 06:10

Re: Formularfeld automatisch ausfüllen

Post by matzeb »

sehr schade aber kann ich verstehen :(

Aber vielleicht finde ich das Problem ja selber. (evtl. mit einer minimalen Unterstützung von dir :P )
In deiner Beispiel URL steht ja "prefill=1"

ist das "=1" wichtig?


in meiner URL steht ja lediglich /index.php?mieten&name=Mustermann
oder müsste die auch so aussehen: /index.php?mieten=1&name=Mustermann (aber dann komm ich nicht auf die Seite)
User avatar
Oliver Georgi
Site Admin
Posts: 9888
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: Formularfeld automatisch ausfüllen

Post by Oliver Georgi »

Nein, das mieten ist das Alias, damit überhaupt die Seite gefunden werden kann. Letztlich ist unwichtig bei prefill, ob da eine 1 dransteht oder nicht. Macht nur klar, dass es ein GET-Wert ist, der – wenn vorhanden – zu weiteren Aktionen führt.

Und solltest Du nicht klarkommen, auch ich bin käuflich…
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
matzeb
Posts: 94
Joined: Tue 29. Nov 2011, 06:10

Re: Formularfeld automatisch ausfüllen

Post by matzeb »

ah, das klingt doch auch nicht schlecht... darüber können wir uns auch gern unterhalten! :D
Post Reply