{{file::get.php?g=my_get_variable}} als Standwert für Select-Menü
Zitat:
Zitat von
Spooky
Einfach mit einem eigenen Script im /templates Ordner:
my_get_variable.php
PHP-Code:
<?php echo \Input::get('my_get_variable'); ?>
{{file::my_get_variable.php}}
Die Methode von Spooky funktioniert super bei einem Textfeld, wo man den Standart-Wert mit {{file::get.php?g=my_get_variable}} befüllt.
Aber wenn man den Feldtyp "Select-Menü" hat und dort {{file::get.php?g=my_get_variable}} als Wert und als Bezeichnung eingibt, dann kommt beim Absenden des Formulars die Fehlermeldung "Ungültige Auswahl". Woran kann das liegen?
Im HTML des Formulars steht der Wert eigentlich richtig drin:
HTML-Code:
<option value="Hobbykurs">Hobbykurs</option>
Wert von einem Input in ein anderes auf einer neuen Seite übergeben
Hallo zusammen
Es geht um eine Newsletter-Anmeldung, bei der der User wie folgt geleitet werden soll:
- E-Mail-Adresse eintippen
- Abschicken
- Auf einer neuen Seite steht das vollständige Formular mit übernommenem Wert aus vorherigem Input (Mail-Adresse) aus vorheriger Seite und weiteren Eingabefeldern (Name, etc.)
Das Contao-Paket mp_forms habe ich ausprobiert und ist für meine Zwecke (aufgrund Design Homepage) nicht brauchbar. Deswegen versuche ich es händisch:
Ich habe folgendes HTML-Element, das aus einem Input-Textfeld und einem Input-Submit besteht. Über die Form-Action wird der user auf eine neue Seite weitergeleitet, wo er dann das bereits auf "Seite 1" ausgefüllte Contao-Formular mit dem ersten Wert befüllen soll (input text value passing):
HTML-Code:
{{file::usermail-passing.php}}
<div class="ce_form block">
<form action="newsletter-abonnieren" method="post">
<div class="formbody">
<div class="widget widget-explanation explanation">
<p>Newsletter abonnieren:</p>
</div>
<div class="widget widget-text mandatory">
<label class="mandatory">
<span class="invisible">Pflichtfeld </span>E-Mail<span class="mandatory">*</span>
</label>
<input type="text" name="user-mail" placeholder="{{iflng::de}}Ihre E-Mail-Adresse{{iflng}}{{iflng::en}}your mail adress{{iflng}}">
<input type="submit" value="{{iflng::de}}Abonnieren{{iflng}}{{iflng::en}}subscribe{{iflng}}">
</div>
</div>
</form>
</div>
Im Ordner Template liegt die Datei my_get_variable.php mit folgendem Inhalt:
PHP-Code:
<?php echo \Input::get('my_get_variable'); ?>
Und eine zweite Datei usermail-passing.php:
PHP-Code:
<?php
if (isset($_POST['usermail'])) {
$usermail = $_POST['usermail'];
$url = "de/newsletter-abonnieren?my_get_variable=" . $usermail;
header('Location: $url');
exit();
}
?>
Im Textfeld des Contao-Formulars habe ich als Standardwert
{{file::my_get_variable.php}}
eingetragen.
Mit dieser Lösung bekomme ich beim Abschicken des selbstgemachten Formulars (nur Input mit Mail-Adresse) einen Frontend-Fehler "Ungültiges Anfrage-Token" und bei der URL fehlt das Sprachkürzel. Wenn ich dann auf den Link (location href) klicke, werde ich richtig weitergeleitet, aber ohne Wertübergabe, weder in der URL noch im Textfeld des Contao-Formulars...
Kann ich damit nicht die beiden Methoden kombinieren?
Kann es etwas mit dem Sprachwechsler (terminal42) zu tun haben? Wenn der installiert ist, habe ich immer wieder Probleme, andere Sachen zu lösen, die mit der URL zu tun haben...
Von Hand eine URL mit variablem Wert aufzurufen, funktioniert gut, das Textfeld übernimmt den Wert.