{{indexmenu_n>140}} ====== Feldinhalt übertrag. V1 ====== Anhand einer Ortsauswahl soll eine bestimmte E-Mailadresse selektiert und übergeben werden. Version 01. \\ ---- ---- Docu: -- \\ Forum: -- **Autor:** [[http://planmatrix.de|K.Heermann]] //(flip-flop) (13.07.2010)// \\ **CMS-Version:** >= V1.4.1 r282 \\ **Version:** V1.0 //13.07.2010// \\ **Bedingung:** -> [[http://www.phpwcms-docu.de/confincphp_de.phtml|/config/phpwcms/conf.inc.php]] \\ * $phpwcms['allow_ext_init'] = 1; ---- ---- \\ ===== Beispiel: ===== {{:deutsch:phpwcms-system:artikel:contentparts:formular:spezielle-anwendungen:php_script_und_funktion_fe01_de_1.gif|}} \\ //(In der Grafik: Den Text E-Mail durch Ort ersetzen)//. Es gibt verschiedene Regionen, denen jeweils eine eMailadresse zugeordnet wird um den richtigen Ansprechpartner für diese Region zu kontaktieren. * Die Region ist eine von vielen und kann in einem Pulldown-Menü ausgewählt werden. Die eMailadresse des Ansprechpartners wird zugeordnet. * Es kommt häufig vor, dass mehrere Regionen von einer Person betreut werden, also identische eMailadressen hinterlegt werden müssen. * Im Text der Ausgangs-eMail soll auch die gewählte Region ausgewiesen werden. Die letzte Forderung schließt die Verwendung der Formular PHP-Funktion aus, da wir bei einem typischen Aufbau keine Rückmeldung zur ausgewählten Region beziehen können. //($postvar['email'] => test@example.com)// wenn z.B. **[E-Mail Aufklappmenü]** Name: **email** Bitte wählen -|- Babaorum -|- obelix@lokal.arpa Laudanum -|- obelix@lokal.arpa Kleinbonum -|- asterix@lokal.arpa Aquarium -|- idefix@lokal.arpa Wählt der Benutzer einen der beiden ersten Orte z.B. "Laudanum", wird uns eine identische eMailadresse zurückgeliefert, wir wissen nicht welchen Ort der Benutzer selektiert hat. //(Obelix ist für die beiden Orte Babaorum und Laudanum zuständig)//. **Erweiterte Variante:** Bitte wählen -|- Babaorum -|- obelix@lokal.arpa Laudanum -|- obelix@lokal.arpa Kleinbonum -|- asterix@lokal.arpa Aquarium -|- idefix@lokal.arpa Die Formular PHP-Funktion würde in der Variablen "$postvar['email'] => obelix@lokal.arpa" liefern, also wäre auch hier keine Ortsbestimmung möglich. //( wird vom Formularscript gefiltert)//. Die Variable "$_POST['email']" in einem frontend_init-Script liefert dagegen z.B. "obelix@lokal.arpa". Wir können den Ort bestimmen. Um den Ort im Ausgabetext zu verankern legen wir ein verstecktes Feld "ort" mit dem Inhalt "nix" an. Dieses Feld kann auch zur Identifikation des Formulars dienen, denn das frontend_init-Script wird bei jedem Seitenaufruf abgearbeitet! ==== Script: ==== Z.B. if( isset($_POST['ort']) AND isset($_POST['email']) ) { ... So kann das Formular zumindest rudimentär identifiziert werden. Dies kann bei mehreren Formularen in der Site wichtig sein. Der letzte Schritt ist die Filterung des Ortes und Zuweisung zur Variablen "$_POST['ort']". \\ Das ist mit einem einfachen preg_replace möglich, je nach Gusto. (.*)/is','$1', $email); // Cutting out the location $_POST['email'] = preg_replace('/\<(.*)\>(.*)/is','$2', $email); //Only for completeness. Is not necessarily needed } // ---- END if( $_POST['ort'] ?> An das Formular wird somit der richtige Ort weitergereicht. Testweise in der Formular PHP-Funktion in "$postvar['ort'] nachsehen, der Text "Laudanum" sollte hier nun eingetragen sein und wird in der Ausgangs-eMail im Platzhalter "{ort}" übernommen. \\ ==== Backend: ==== {{:deutsch:phpwcms-system:artikel:contentparts:formular:spezielle-anwendungen:php_script_und_funktion_be01_de_1.gif|}} **[E-Mail Aufklappmenü]** Name: **email** Bitte wählen -|- Babaorum -|- obelix@lokal.arpa Laudanum -|- obelix@lokal.arpa Kleinbonum -|- asterix@lokal.arpa Aquarium -|- idefix@lokal.arpa \\ {{:deutsch:phpwcms-system:artikel:contentparts:formular:spezielle-anwendungen:php_script_und_funktion_be02_de_1.gif|}} **Empfängervorlage:** Hallo {anrede} {name}, E-Mail: {email} Ort: {ort} Kommentar: ------------------------------ {kommentar} ------------------------------ Das war alles - Danke. **Vorlage:**
{ERROR:anrede}[B]{LABEL:anrede}[/B] *[BR]{anrede}[BR][BR] {ERROR:name}[B]{LABEL:name}[/B] *[BR]{name}[BR][BR] {ERROR:email}[B]{LABEL:email}[/B] *[BR]{email}[BR][BR] {ERROR:kommentar}[B]{LABEL:kommentar}[/B][BR]{kommentar}[BR][BR] {ERROR:nospam}[B]{LABEL:nospam}[/B] *[BR]{nospam}[BR][BR] {submitIt}