Page 1 of 1

Formularfeld automatisch ausfüllen

Posted: Fri 9. Jun 2017, 19:05
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

Re: Formularfeld automatisch ausfüllen

Posted: Fri 9. Jun 2017, 22:24
by Old Boy
Kannst du denn nicht einfach auf unterschiedlich vorausgefüllte Formulare verlinken :?:

Re: Formularfeld automatisch ausfüllen

Posted: Sat 10. Jun 2017, 01:21
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:

Re: Formularfeld automatisch ausfüllen

Posted: Sat 10. Jun 2017, 06:30
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]);
        }
    }
}
?>

Re: Formularfeld automatisch ausfüllen

Posted: Sat 10. Jun 2017, 08:52
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:

Re: Formularfeld automatisch ausfüllen

Posted: Mon 12. Jun 2017, 06:22
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.

Re: Formularfeld automatisch ausfüllen

Posted: Mon 12. Jun 2017, 23:20
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))

Re: Formularfeld automatisch ausfüllen

Posted: Tue 13. Jun 2017, 06:04
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.

Re: Formularfeld automatisch ausfüllen

Posted: Tue 13. Jun 2017, 08:04
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? :(

Re: Formularfeld automatisch ausfüllen

Posted: Tue 13. Jun 2017, 08:39
by Oliver Georgi
Ab jetzt beginnt das Deuten per Glaskugel. Sorry, dazu fehlt mir die Zeit und die Lust.

Re: Formularfeld automatisch ausfüllen

Posted: Tue 13. Jun 2017, 08:49
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)

Re: Formularfeld automatisch ausfüllen

Posted: Tue 13. Jun 2017, 09:43
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…

Re: Formularfeld automatisch ausfüllen

Posted: Tue 13. Jun 2017, 10:21
by matzeb
ah, das klingt doch auch nicht schlecht... darüber können wir uns auch gern unterhalten! :D