PIFA Formular-Assistent: Feld mit GET-Wert vorbelegen?

Alles rund um Module und Plugins in CONTENIDO 4.9.
Antworten
wadahadadu
Beiträge: 40
Registriert: Do 20. Jan 2011, 21:13
Kontaktdaten:

PIFA Formular-Assistent: Feld mit GET-Wert vorbelegen?

Beitrag von wadahadadu » Mi 31. Aug 2016, 17:57

Ein PIFA-Kontaktformular soll als simples Bestellformular genutzt werden. Dabei soll einem der Formularfelder ein dynamischer Wert per GET übergeben werden, so dass es mit diesem Wert vorbelegt ist, etwa in dem Stil:

URL: https://www.domain.tld/cms/front_conten ... t_id=12345

Code: Alles auswählen

<?php
$value = "Produkt-ID: ".$_GET['product_id'];
echo "<form>";
echo "<label>Bemerkungen:</label>";
echo "<textarea name='comments'>".$value."</textarea>
(...)
echo "</form>";
?>
Wie realisiert man sowas mit dem Formular-Assistenten?

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: PIFA Formular-Assistent: Feld mit GET-Wert vorbelegen?

Beitrag von rethus » Mo 5. Sep 2016, 09:24

Da brauchst du nichts in der Programmierung machen. Einfach in deinem Forumalr-Editor ein Textfeld mit einem Standadwert belegen.
Du könntest dann, wenn du es nicht anzeigen lassen möchtest auch eine CSS-Klasse definieren (z.B. hidde, die dann den Wert "display:none" hat. Dem besagten Feld ordnest du dann diese css-class hinzu, und e voila... ein hidden field mit einem Wunschwert :mrgreen:
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: PIFA Formular-Assistent: Feld mit GET-Wert vorbelegen?

Beitrag von McHubi » Mo 5. Sep 2016, 14:48

Ich kann zwar in punkto Anpassung des PIFA-Codes keine Hilfestellung geben, aber mit
ein dynamischer Wert per GET
vs.
Standardwert
ist Dein Lösungsvorschlag aller Voraussicht nach falsch... :wink:

Trotzdem eine Idee, wenn Du nichts im Core ändern möchtest: Je nach Markup kannst Du nach Darstellung des Formulars über ein eigenes kleines Modul den Wert per GET auslesen und dann per JS den Value des Feldes über die ID manipulieren.

Code: Alles auswählen

<input name="last_name" value="" size="50" type="text" id="pifa-field-elm-6" />
Die ID scheint sich z. B. beim Verschieben des Feldes in der Reihenfolge des Formulars auch nicht zu verändern.
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

wadahadadu
Beiträge: 40
Registriert: Do 20. Jan 2011, 21:13
Kontaktdaten:

Re: PIFA Formular-Assistent: Feld mit GET-Wert vorbelegen?

Beitrag von wadahadadu » Di 6. Sep 2016, 16:03

Herzlichen Dank euch beiden für eure Hilfe. Die Sache hab ich nun mit Javascript gelöst. Das funktioniert natürlich nur, wenn Javascript im Browser des Benutzers aktiviert ist, aber es ist besser als nichts.

Hier der Code, falls ihn jemand verwenden möchte:

HTML-Layout:

Code: Alles auswählen

<html>
<head>
    <script type="text/javascript" language="javascript" src="js/scripts.js"></script>
</head>
<body onload="insertGetValue();">

(...Code des Formulars...)

</body>
</html>
scripts.js:

Code: Alles auswählen

/* get query string variables */

function getQueryVariable(variable)
{
	var query = window.location.search.substring(1);
	var vars = query.split("&");
	for (var i=0; i<vars.length; i++) {
		var pair = vars[i].split("=");
		if (pair[0] == variable) {
			return pair[1];
		}
	}
}


/* insert GET value into form field */

function insertGetValue()
{
	var current_value = document.getElementsByName("comments")[0].value;
	if (current_value == "" || current_value == null) 
	{
		var new_value 		= getQueryVariable("product_id");
		document.getElementsByName("comments")[0].value = new_value;
	}
}
...wobei "comments" in diesem Beispiel der Name des Formularfeldes ist und "product_id" der Name des URL-Parameters. Mit der ID des Formularfeldes würde es auch gehen: document.getElementById("id_des_formularfeldes").value

Antworten