Beitrag von Ralf (143 Beiträge) am Sonntag, 18.Mai.2003, 07:48.
Parameteruebergabe von Formular in Template
Wer kann mir als bp-Anfänger verraten, wie man die folgende Parameterübergabe organisiert.
In einer Page1 wird mittels Fomular ein Wohnort abgefragt:
<form action="http://baseportal.de/cgi-bin/baseportal.pl?htx=Template&Input_Wohnort=$Wohnort"
method="post" enctype="multipart/form-data">
<select name="Wohnort" size=5>
<option> ++ALLE++
<option> Kuckukhausen
<option> Amselhausen
<option> Spatzenhausen
<option> Schwanenhausen
</select>
<input type=submit value="Suchen">
</form>
Dann soll eine Page2 (Template) mit Ausgabe von Datensätzen innerhalb einer Loop, eingeschränkt auf den ausgewählten Wohnort, aufgerufen werden (hier vereinfacht dargestellt).
<loop db=Datenbank code=perl>
get "Wohnort==$Input_Wohnhort","Datenbank";
</loop>
</perl>
Leider habe ich es nicht hingekriegt. Habe auch ein Test-output mit
<perl>
out "Wohnort: $Input_Wohnort";
</perl>
eingetragen, doch leider ohne Erfolg. Danke für jeden Tipp!
Beitrag von Christoph Bergmann (8110 Beiträge) am Sonntag, 18.Mai.2003, 23:15.
Re: Parameteruebergabe von Formular in Template
Also ein paar Sachen laufen durcheinander: Wenn Du mit "loop" arbeitest, brauchst Du das "get" nicht, also so sollte es beim Ausgabe-Template (Page2) reichen:
<loop db=Datenbank>
Feld1=$Feld1...Feld2=$Feld2...<br>
</loop>
Die Ausgabe musst Du an Deine Bedürfnisse anpassen. Beim Abfrage-Template (Page1) muss es so aussehen:
<form action="http://baseportal.de/cgi-bin/baseportal.pl?htx=Template"
method="post" enctype="multipart/form-data">
<select name="Wohnort==" size=5>
<option value="*">++ALLE++
<option>Kuckuckhausen
<option>Amselhausen
<option>Spatzenhausen
<option>Schwanenhausen
</select>
<input type=submit value="Suchen">
</form>
d.h. wenn ich alles richtig verstanden habe ;-)
Ungefähr klar?
Beitrag von Ralf (143 Beiträge) am Montag, 19.Mai.2003, 10:03.
Re: Parameteruebergabe von Formular in Template
Vielen Dank für die Antwort. Ich gebe zu, ich habe mein Problem nicht deutlich genug dargestellt. Neben Deiner Antwort haben mir noch andere Beispiele in der Bibliothek zu einer funktionierenden Lösung verholfen:
1. Der Aufruf in der ersten Datei, die das Fomular enthält, muß wie folgt sein:
<form action="http://baseportal.de/cgi-bin/baseportal.pl?htx=Template" method="post" enctype="multipart/form-data">
<input type=hidden name="htx="
value="Template">
<select name="Wohnort:=" size=5>
<option selected>++ALLE++
<option>Kuckuckhausen
<option>Amselhausen
<option>Spatzenhausen
<option>Schwanenhausen
</select>
<input type=submit value="Suchen">
</form>
2. Der Parameter im Formular heiß "Wohnort" und kann in der aufgerufenen Datei (Namen "Template") via PERL mit $Wohnort angesprochen werden (dabei muß man unterscheiden: der Wohnort ohne Dollarzeichen ist der Feldname aus der Datenbank, der mit Dollarzeichen ist der übergebene Aufrufparameter) :
<loop db=Datenbank code=perl>
Wohnort=$Wohnort<br>
</loop>
</perl>
Ausgegeben werden dann alle Sätze der Datenbank, die den im Formular ausgewählten Wohnort enthalten.