if-Klausel in <form... URL mitgeben
netzlerin
- php
Hallo alle
auf unserer Website gibt es themenspezifische Inhalte. Die Besucher sollen Ihre Kommentare zu diesen Themen abgeben können. Das php-Formular bzw. dessen Inhalt ist überall gleich. Einziger Unterschied: einmal bezieht sich das Formular auf Thema 1, einmal auf Thema 2. Anstatt zwei verschiedene Formulare zu bauen, hätte ich gerne zweimal dasselbe eingebaut. Der einzige Unterschied: füllt man das Formular auf Seite 1 (Thema 1) und schickt es ab, steht im Subject(oder auch im Text) 'Feedback zum Thema 1'. Schickt man es auf Seite 2 (Thema 2) ab, steht im Subject (oder im Text) 'Feedback zum Thema 2'. Da die Fragen überall die gleichen sind, muss man einfach gut erkennen können, von welcher Seite bzw. auf welches Thema sich die Antworten beziehen.
Es müsste doch möglich sein, im Formular eine if-else-Klausel einzubauen, die die URL, je nach Seite, mitschickt. Und diese URL entspricht dann dem Thema.
Kann mir jemand einen Tipp geben, wie das in php geht??
Vielen Dank.
yo,
Es müsste doch möglich sein, im Formular eine if-else-Klausel einzubauen, die die URL, je nach Seite, mitschickt. Und diese URL entspricht dann dem Thema.
das geht recht einfach, nicht gerade mit einer if klausel, sondern mit einer variablen, die mit einem "hidden" input tag mitgeschickt wird. dort kann der wert entsprechend gesetzt werden und dann nach der auswertung entsprechend verzweigt werden.
Ilja
yo,
Es müsste doch möglich sein, im Formular eine if-else-Klausel einzubauen, die die URL, je nach Seite, mitschickt. Und diese URL entspricht dann dem Thema.
das geht recht einfach, nicht gerade mit einer if klausel, sondern mit einer variablen, die mit einem "hidden" input tag mitgeschickt wird. dort kann der wert entsprechend gesetzt werden und dann nach der auswertung entsprechend verzweigt werden.
Ilja
Danke für die Antwort, Ilja!
Ich weiss nicht, ob es so einfach ist...: das Formular wird aus einem Modul erzeugt, d.h. alles, was im Formular steht, kommt aus ein- und demselben Modul. Dieses wird in eine html-Seite geladen. Der Inhalt (das php-Modul) ist also immer der gleiche. Deshalb kam ich auf die Idee mit der URL, weil die sich unterscheidet.
Geht das wirklich ohne if-Klausel?
Danke für einen Tipp.
Hello,
Geht das wirklich ohne if-Klausel?
Ggf. musst Du ob_start() bemühen.
Irgendwann einmal muss der Buchsatabensalat für das Formular ja generiert werden.
Dann wird die von die eingefügte Variable abgefragt und als hidden-element mitgesandt.
Das Setzen der Variable (z.B. eine globale) machst Du immer gleich beim Eintritt in die entsprechende Sequenz des Moduls. Etwas chirurgischen Eingriff wird es also erfordern.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Hello,
Geht das wirklich ohne if-Klausel?
Ggf. musst Du ob_start() bemühen.
Irgendwann einmal muss der Buchsatabensalat für das Formular ja generiert werden.
Dann wird die von die eingefügte Variable abgefragt und als hidden-element mitgesandt.Das Setzen der Variable (z.B. eine globale) machst Du immer gleich beim Eintritt in die entsprechende Sequenz des Moduls. Etwas chirurgischen Eingriff wird es also erfordern.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.deTom
Hallo Tom
danke für die Antwort!
Ok, hier die 'Skizze':
die URL z.B. http://meinesite.de/showthread.php?threadid=20072
Im Modul steht dann u.a.:
<form action="Ihre_Meinung.php" method="post">
//dann hier z.B. eine Auswahl
<select name="select_Inhalt" class="form" value="<? echo $select_Inhalt;?>">
<option selected>zu knapp</option>
<option>zu ausfürlich</option>
<option>gerade recht</option>
</select>
<input type=submit name=Submit value="Senden">
</form>
und im 'Ihre_Meinung.php'
<?php
// eine Zeile
Zum Inhalt : $select_Inhalt
?>
Wie mache ich hier den chirurgischen Eingriff?
Danke für den Tipp!
Hello,
Ok, hier die 'Skizze':
die URL z.B. http://meinesite.de/showthread.php?threadid=20072
Im Modul steht dann u.a.:
<form action="Ihre_Meinung.php" method="post">
//dann hier z.B. eine Auswahl
<select name="select_Inhalt" class="form" value="<? echo $select_Inhalt;?>">
<option selected>zu knapp</option>
<option>zu ausfürlich</option>
<option>gerade recht</option>
</select><input type=submit name=Submit value="Senden">
</form>
und im 'Ihre_Meinung.php'
<?php
// eine Zeile
Zum Inhalt : $select_Inhalt
?>Wie mache ich hier den chirurgischen Eingriff?
Wo soll denn der variante Inhalt erscheinen? In Ihre_Meinung.php oder im Formular?
Screib doch einfach mal an die entsprechende Stelle
<!--{FormVar01}-->
Das fällt auf und dann schauen wir, wie man das zur rechten Zeit ersetzen kann.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Hello,
Ok, hier die 'Skizze':
die URL z.B. http://meinesite.de/showthread.php?threadid=20072
Im Modul steht dann u.a.:
<form action="Ihre_Meinung.php" method="post">
//dann hier z.B. eine Auswahl
<select name="select_Inhalt" class="form" value="<? echo $select_Inhalt;?>">
<option selected>zu knapp</option>
<option>zu ausfürlich</option>
<option>gerade recht</option>
</select><input type=submit name=Submit value="Senden">
</form>
und im 'Ihre_Meinung.php'
<?php
// eine Zeile
Zum Inhalt : $select_Inhalt
?>Wie mache ich hier den chirurgischen Eingriff?
Wo soll denn der variante Inhalt erscheinen? In Ihre_Meinung.php oder im Formular?
Screib doch einfach mal an die entsprechende Stelle
<!--{FormVar01}-->
Das fällt auf und dann schauen wir, wie man das zur rechten Zeit ersetzen kann.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.deTom
Hallo Tom
Der Inhalt des Formulars, den die Leute abschicken, ist IMMER gleich. Einzig ich, die die Mails lese, erhalte im Subject ein 'Feedbackformular zum Thema 1' oder 'Feedbackformular zum Thema 2' - das wäre mein Wunsch ;-)
Das Script muss also bloss erkennen, von welcher Seite das Formular abgeschickt wurde diese 'Kennung' in das Mail schreiben, welches ich bekomme.
Klingt doof, ich weiss, aber ich habe mehr als 30 Themen und zu jedem dieser Themen dasselbe Feedback-Formular. Ich möchte also nicht 30 Module erzeugen und 30 formaction-Scripts.
Auf der Website gibt es einzig die URL, die bei jeder Seite verschieden ist. Kann man diese denn nicht irgendwie mitgeben, sobald man den Submit-Button klickt? Und dann die URL 1 in ein 'Thema 1'-Wort umwandeln bzw. die URL 2 in ein 'Thema 2' usw. Wenn dies dann noch in die Subject-Zeile des ankommenden Mails geschrieben wird, bin ich schon sehr happy :-)
Danke für den Tipp!
Hello,
die URL z.B. http://meinesite.de/showthread.php?threadid=20072
<form action="Ihre_Meinung.php" method="post">
//dann hier z.B. eine Auswahl
<select name="select_Inhalt" class="form" value="<? echo $select_Inhalt;?>"> <!-- ## ???? -->
<option selected>zu knapp</option>
<option>zu ausfürlich</option>
<option>gerade recht</option>
</select>
<input type="hidden" name="thema" value="<?php echo htmlentities($thema); ?>">
<input type=submit name=Submit value="Senden">
</form>
nun musst Du nur schauen, wie Du $thema an das Modul übergibst und wo Du es noch vor dem Aufruf des Modules setzen kannst.
Was soll das value-Attribut im <select> bewirken?
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Hello,
die URL z.B. http://meinesite.de/showthread.php?threadid=20072
<form action="Ihre_Meinung.php" method="post">
//dann hier z.B. eine Auswahl
<select name="select_Inhalt" class="form" value="<? echo $select_Inhalt;?>"> <!-- ## ???? -->
<option selected>zu knapp</option>
<option>zu ausfürlich</option>
<option>gerade recht</option>
</select><input type="hidden" name="thema" value="<?php echo htmlentities($thema); ?>">
<input type=submit name=Submit value="Senden">
</form>
nun musst Du nur schauen, wie Du $thema an das Modul übergibst und wo Du es noch vor dem Aufruf des Modules setzen kannst.
Was soll das value-Attribut im <select> bewirken?
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.deTom
Hallo Tom
danke für Deine Antwort!
<select name="select_Inhalt" value="<? echo $select_Inhalt;?>">
Das Value gibt den Wert der Auswahl aus, z.B. 'gerade recht' (siehe oben)
Die entsprechende Zeile in Ihre_Meinung.php heisst
Inhalt : $select_Inhalt
Und genau diese Zeile oben bekomme via Mail zugestellt.
Ok, verstehe ich das richtig: kann ich Deine Zeile oben also so ändern:
<input type="hidden" name="Thema" value="<?php echo htmlentities($Thema); ?>">
und eine Zeile in Ihre_Meinung.php einfügen
Inhalt : $Thema
Geht aber leider nicht. Das Mail gibt mir bloss die Zeile so
Inhalt :
zurück statt so:
Inhalt : http://meinesite.de/showthread.php?threadid=20072
Was mache ich falsch??
Danke für Deinen Tipp!
Hello,
<select name="select_Inhalt" class="form" value="<? echo $select_Inhalt;?>"> <!-- ## ???? -->
Was soll das value-Attribut im <select> bewirken?
Das Value gibt den Wert der Auswahl aus, z.B. 'gerade recht' (siehe oben)
Die entsprechende Zeile in Ihre_Meinung.php heisst
Inhalt : $select_Inhalt
zumindest in SelfHTML kann ich kein Attribut 'value' für select entdecken:
http://de.selfhtml.org/html/referenz/attribute.htm#select
Und ich denke nicht, dass ich hier die HTML-Spezifikation bemühen muss.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Hello,
<select name="select_Inhalt" class="form" value="<? echo $select_Inhalt;?>"> <!-- ## ???? -->
Was soll das value-Attribut im <select> bewirken?
Das Value gibt den Wert der Auswahl aus, z.B. 'gerade recht' (siehe oben)
Die entsprechende Zeile in Ihre_Meinung.php heisst
Inhalt : $select_Inhalt
zumindest in SelfHTML kann ich kein Attribut 'value' für select entdecken:
http://de.selfhtml.org/html/referenz/attribute.htm#selectUnd ich denke nicht, dass ich hier die HTML-Spezifikation bemühen muss.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.deTom
Hallo Tom
Danke für Deine Antwort. Ok, das kann natürlich sein, dass man dieses Attribut so nicht verwenden sollte. Das kann ich ja ändern...
Aber meine Anfrage bezieht sich eigentlich auch nicht darauf, wie ich die Inhalte der restlichen Formularfelder weitergeben kann, sondern wie ich die URL der entsprechenden Seite ans verschickte Formular mitgeben kann.
1. Auf Seite x.php habe ich ein simples Kontaktformular. Wenn ich dieses abschicke, bekomme ich ein Mail.
2. Auf Seite y.php habe ich GENAU DAS GLEICHE Kontaktformular. Wenn ich dieses abschckt, bekomme ich wieder ein Mail.
Das Einzige, was ich brauche, ist ein Hinweis auf dem Antwortmail, von welcher Seite das Formular verschickt wurde.
Ich vermute, man muss beim Submit-Button anseetzen. In etwa so: immer wenn der Submit-Button geklickt wird, soll zusätzlich die URL der Seite mitgegeben werden.
Wie mache ich das??
Danke für einen Tipp
Hallo
Aber meine Anfrage bezieht sich eigentlich auch nicht darauf, wie ich die Inhalte der restlichen Formularfelder weitergeben kann, sondern wie ich die URL der entsprechenden Seite ans verschickte Formular mitgeben kann.
Das Einzige, was ich brauche, ist ein Hinweis auf dem Antwortmail, von welcher Seite das Formular verschickt wurde.
Setze in das Formular ein <input type="hidden">
ein, dessen value mit <?php echo $_SERVER["PHP_SELF"]; ?>
befüllt wird. Nehmen wir weiterhin an, das dieses <input type="hidden">
den Namen "url" trägt. Im auswertenden Skript kommt diese Variable als $_POST["url"] an. Dort musst du selbige nur noch auswerten.
Tschö, Auge
Hallo Auge!
danke für Deine Antwort. Es klappt noch nicht ganz. Ich habs so gemacht. Im Formular (welches ein Modul darstellt) steht:
<input type="hidden" name="url"
value="<?php echo $_SERVER['PHP_SELF']; ?>">
Im auswertenden Formular hab ich eingetragen:
<?php
.... (andere Felder)
E-Mail : $email
Adresse : $_POST["url"]
";
Parse error: parse error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in ../kontaktformular.php on line 46 (..=ganze Adresse)
Wo stimmt was nicht? Ich bin aber sicher, die Lösung ist nahe ;-)
Danke für einen Tipp
Hallo
Aber meine Anfrage bezieht sich eigentlich auch nicht darauf, wie ich die Inhalte der restlichen Formularfelder weitergeben kann, sondern wie ich die URL der entsprechenden Seite ans verschickte Formular mitgeben kann.
Das Einzige, was ich brauche, ist ein Hinweis auf dem Antwortmail, von welcher Seite das Formular verschickt wurde.
Setze in das Formular ein
<input type="hidden">
ein, dessen value mit<?php echo $_SERVER["PHP_SELF"]; ?>
befüllt wird. Nehmen wir weiterhin an, das dieses<input type="hidden">
den Namen "url" trägt. Im auswertenden Skript kommt diese Variable als $_POST["url"] an. Dort musst du selbige nur noch auswerten.Tschö, Auge
echo $begrüßung;
<?php
.... (andere Felder)
E-Mail : $email
Adresse : $_POST["url"]
";Parse error: parse error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in ../kontaktformular.php on line 46 (..=ganze Adresse)
Mit dem abgebildeten Fragment kann ich deine Fehlermeldung nicht nachstellen. Aber wenn du ein Arrayelement innerhalb eines mit "" eingefassten Strings angeben willst, musst du das in {} setzen, damit der PHP-Parser weiß, dass das zusammengehört. Also:
$var = "... {$_POST['url']} ...";
Die '' oder "" um das url wegzulassen ist zwar unter Ignorieren einer Notice möglich aber nicht empfehlenswert.
echo "$verabschiedung $name";
Hallo - danke für die Antwort!
Ich habs so versucht:
<input type="hidden" name="url" value="<?php echo $_SERVER['PHP_SELF']; ?>">
und im kontaktformular.php
<?php
E-Mail : $email
Adresse : {$_POST["url"]}
";
Tatsächlich wird jetzt (juhuii!) eine Zeile im Mail ausgegeben. Die Adresse stimmt noch nicht, aber jetzt bedarf es vermutlich noch ne 'Anleitung' zur Datenbankabfrage. Im Moment gibt es die Adresse der Einstiegsseite an.... > /cms/front_content.php Jetzt brauche ich noch die idcatart=xxx
echo $begrüßung;
<?php
.... (andere Felder)
E-Mail : $email
Adresse : $_POST["url"]
";Parse error: parse error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in ../kontaktformular.php on line 46 (..=ganze Adresse)
Mit dem abgebildeten Fragment kann ich deine Fehlermeldung nicht nachstellen. Aber wenn du ein Arrayelement innerhalb eines mit "" eingefassten Strings angeben willst, musst du das in {} setzen, damit der PHP-Parser weiß, dass das zusammengehört. Also:
$var = "... {$_POST['url']} ...";
Die '' oder "" um das url wegzulassen ist zwar unter Ignorieren einer Notice möglich aber nicht empfehlenswert.
echo "$verabschiedung $name";
Hallo
<?php
.... (andere Felder)
E-Mail : $email
Adresse : $_POST["url"]
";
>
> Parse error: parse error, unexpected '\"', expecting T\_STRING or T\_VARIABLE or T\_NUM\_STRING in ../kontaktformular.php on line 46 (..=ganze Adresse)
>
> Wo stimmt was nicht?
~~~php
<?php
// .... (andere Felder)
E-Mail : $email
Adresse : ".$_POST["url"]."
// weitere Felder(?)
";
Nimm den Variablennamen aus dem normalen Textfluss (Wenn ich das mal so formulieren darf.).
Tschö, Auge