Beitrag von Tini (0 Beiträge) am Donnerstag, 2.Dezember.2004, 09:17.
2 Formulare in 1 Template funktionieren nicht
Guten Morgen,
ich habe 2 Formularabfragen in einem Template.
Es wird jeweils eine andere db abgefragt.
Einzeln funktionieren Sie einwandfrei nur nicht zusammen.
Hat es vielleicht was damit zu tun, daß die 2. Formularabfrage
perl dabei hat.
Ich habe mir das hier im Forum zusammengesucht und weiß auch nicht
wirklich, was es bedeutet.
Ich hoffe, mir kann jemand helfen :-)
Tini
1. Formular, was nicht funktioniert (nur einzeln)
Es kommt immer eine Fehlermeldung:
[ Fehler: Feld PLZ in /.../daten2 nicht vorhanden
Die db "daten2" wird aber garnicht in diesem Formular abgefragt, sondern im 2. Formular?
<form action="baseportal.pl?htx=/.../template1&db=daten1&cmd=search&range^=0,5" method="post" enctype="multipart/form-da....
Suchen:<input type="text" name="PLZ~=" size=10 value="">
<input type=submit value="Suchen">
----------------------------------------
2. Formular was funktioniert:
out <<EOF;
<tr><td>
<form action="http://...template2" method="post" enctype="multipart/form-data">
<input type=hidden name="cmd=" value="search">
EOF
get "Rubrik==*", "daten2", "erghash";
while(get_next("erghash")) {
push @opRubrik, $Rubrik if index("@opRubrik", "$Rubrik")<0;
}
foreach my $opRubrik(sort @opRubrik){
# $a_opRubrik .= $opRubrik eq $frubrik ? "<option selected value=$opRubrik>$opRubrik" : "<option value=$opRubrik>$opRubrik";
$a_opRubrik .= "<option value=$opRubrik>$opRubrik";
}
my $sl = "selected" if $frubrik eq "";
out<<EOF;
<select name="frubrik=">
<option $sl value='*'>Alle
$a_opRubrik
</select>
<input type="submit" value="suchen">
</form>
EOF
Antworten
Beitrag von ups (2 Beiträge) am Donnerstag, 2.Dezember.2004, 11:38.
Re: 2 Formulare in 1 Template funktionieren nicht
weisst du wenigstens, was du erreichen willst, wenn du schon nicht weisst, was es bedeutet? klär uns doch mal auf, vielleicht kann dir dann jemand weiterhelfen
Antworten
Beitrag von Tini (0 Beiträge) am Donnerstag, 2.Dezember.2004, 14:44.
Re: 2 Formulare in 1 Template funktionieren nicht
Was ich erreichen will, habe ich doch geschrieben!
Wenn die beiden Formulare in einem Template stehen, funktioniert
das erste nicht - einzeln schon.
Tini
Antworten
Beitrag von ups (2 Beiträge) am Freitag, 3.Dezember.2004, 10:01.
Re: 2 Formulare in 1 Template funktionieren nicht
Die Formulare als solches werden schon funktionieren.
Aber bei deiner Datenbank-Einbindung, auf die die Formularaktion läuft, könnte etwas nicht passen. Aber du verrätst uns ja nicht, wie das aussieht
no input - no output - session closed
Antworten
Beitrag von Tini (0 Beiträge) am Freitag, 3.Dezember.2004, 10:29.
Zitat: "Es gibt keine dummen Fragen - jeder hat mal angefangen!"
Hallo pups,
außer deinen blöden Bemerkungen gibt es den Input auch in meinem ersten Beitrag zu lesen.
Danke!
Hier nochmal für dich zum lesen:
Es kommt immer eine Fehlermeldung:
[ Fehler: Feld PLZ in /.../daten2 nicht vorhanden
Die db "daten2" wird aber garnicht in diesem Formular abgefragt, sondern im 2. Formular?
Formular 1:
<form action="baseportal.pl?htx=/.../template1&db=daten1&cmd=search&range^=0,5" method="post" enctype="multipart/form-da....
Suchen:<input type="text" name="PLZ~=" size=10 value="">
<input type=submit value="Suchen">
----------------------------------------
Formular 2:
out <<EOF;
<tr><td>
<form action="http://...template2" method="post" enctype="multipart/form-data">
<input type=hidden name="cmd=" value="search">
EOF
get "Rubrik==*", "daten2", "erghash";
while(get_next("erghash")) {
push @opRubrik, $Rubrik if index("@opRubrik", "$Rubrik")<0;
}
foreach my $opRubrik(sort @opRubrik){
# $a_opRubrik .= $opRubrik eq $frubrik ? "<option selected value=$opRubrik>$opRubrik" : "<option value=$opRubrik>$opRubrik";
$a_opRubrik .= "<option value=$opRubrik>$opRubrik";
}
my $sl = "selected" if $frubrik eq "";
out<<EOF;
<select name="frubrik=">
<option $sl value='*'>Alle
$a_opRubrik
</select>
<input type="submit" value="suchen">
</form>
EOF
Antworten
Beitrag von Claus (4645 Beiträge) am Freitag, 3.Dezember.2004, 11:44.
Re: Zitat: "Es gibt keine dummen Fragen - jeder hat mal angefangen!"
Hallo Tini,
bin mir nicht ganz sicher, aber warum steht im 1. Formular baseportal.pl?htx=/...usw.
und im zweiten Formular http//...usw.
<form action="baseportal.pl?htx=/.../template1&db=daten1&cmd=search&range^=0,5" method="post" enctype="multipart/form-da....
Suchen:<input type="text" name="PLZ~=" size=10 value="">
<input type=submit value="Suchen">
----------------------------------------
Formular 2:
out <<EOF;
<tr><td>
<form action="http://...template2" method="post" enctype="multipart/form-data">
<input type=hidden name="cmd=" value="search">
EOF
Warum diese unterschiede? Ruf doch beide über den "gleichen Pfad" auf, denn die Templates liegen doch wohl in einem Ordner.
Gruß
Claus
Antworten
Beitrag von Tini (0 Beiträge) am Freitag, 3.Dezember.2004, 14:49.
Re: Zitat: "Es gibt keine dummen Fragen - jeder hat mal angefangen!"
Hallo Claus und Danke für deine Antwort.
Egal, wie ich den Pfad aufrufe - es funktioniert nicht.
Wenn ich über das 1. Formular abfrage, wird anscheinend
automatisch das 2. Formular auch mit abgefragt, obwohl ich
nur auf den Button für das 1. Formular klicke.
Durch diese Überschneidung werden die Felder meines 1. Formulars
in der DB des 2. Formulars gesucht, die aber nicht vorhanden sind.
Ich habe das jetzt mal geändert und die zusätzliche htx-Zeile bei <form>
rausgenommen.
Jetzt funktioniert nur noch das 1. Formular und das 2. garnichtmehr :-(
Tini
Hier mal ein Link zur Ansicht:
http://baseportal.de/cgi-bin/baseportal.pl?htx=/tini1972/mitglieder/suche
Hier das komplette Template:
<table border="0" width="100">
<form action="http://baseportal.de/cgi-bin/baseportal.pl?htx=/tini1972/mitglieder/mitglieder" method="post" enctype="multipart/form-data">
<input type=hidden name="cmd=" value="search">
<tr>
<td><font face=verdana size=-1>
<center><b>suche</b></td>
</tr>
<td><font face=verdana size=-2>
... nach PLZ<br>
<input type="text" name="PLZ~=" size=10 value=""><br>
</td>
</tr>
<tr>
<td>
<input type=submit value="Suchen"></td>
</tr>
<tr>
<td><font face=verdana size=-1>
<center><b>Angebote</b></td>
</tr>
<perl>
out <<EOF;
<tr><td>
<form action="http://baseportal.de/cgi-bin/baseportal.pl?htx=/tini1972/mitglieder/angebote" method="post" enctype="multipart/form-data">
<input type=hidden name="cmd=" value="search">
EOF
get "Rubrik==*", "angebote", "erghash";
while(get_next("erghash")) {
push @opRubrik, $Rubrik if index("@opRubrik", "$Rubrik")<0;
}
foreach my $opRubrik(sort @opRubrik){
# $a_opRubrik .= $opRubrik eq $frubrik ? "<option selected value=$opRubrik>$opRubrik" : "<option value=$opRubrik>$opRubrik";
$a_opRubrik .= "<option value=$opRubrik>$opRubrik";
}
my $sl = "selected" if $frubrik eq "";
out<<EOF;
<select name="frubrik=">
<option $sl value='*'>Alle
$a_opRubrik
</select>
<input type="submit" value="suchen">
</form>
EOF
</table>
Antworten
Beitrag von Claus (4645 Beiträge) am Freitag, 3.Dezember.2004, 15:02.
Re: Zitat: "Es gibt keine dummen Fragen - jeder hat mal angefangen!"
Hallo tini,
versuche gerade Deinem Gedankengang zu folgen, geht aber nur bedingt.
Habe mal beide Felder Plz(44444) und Auswahl benutzt und den zweiten Button gedrückt. Kam nur ein Datensatz mit 44444.
Warum eigentlich zwei!! suchen. Mach doch eine Suche mit zwei Feldern.
Plz:
Auswahl:
Abschicken
Ich weiß momentan nicht, was Dein Problem ist???
Gruß
Claus
Antworten
Beitrag von Tini (0 Beiträge) am Freitag, 3.Dezember.2004, 16:00.
Re: Zitat: "Es gibt keine dummen Fragen - jeder hat mal angefangen!"
Hallo Claus,
es werden 2 verschiedenen Datenbanken abgefragt!
Im 1. Formular soll man aus DB1 per PLZ suchen können.
Im 2. Formular sucht man in DB2 - durch das Perl werden
alle Inhalte aus dem Feld "Rubrik" ausgegeben, bzw. kommen
Rubriken mehrmals vor, dann nur 1x.
Tini
Antworten
Beitrag von (p)ups (1 Beitrag) am Samstag, 4.Dezember.2004, 09:07.
Re: Zitat: "Es gibt keine dummen Fragen - jeder hat mal angefangen!"
Also mal langsam - ich seh schon....
Endlich kann man mal was sehen und auch den Fehler eingrenzen - so ein paar Links sind doch schon mal was... ;-)
Also fakt ist, dass alle beide Formulare trotz unterschiedlichem Aufrufparameter in der form-action auf das gleiche Template laufen, was sie nicht sollen. Das sieht man ja an der Adresszeile des Browsers nach Abschicken.
Wodurch könnte das kommen? - schnell mal bei Stefan Münz nachgeschaut und in den grauen Zellen gegrast - ja - genau -
Gib jedem Formular mal einen Namen und probiers dann nochmal
Merkst du nun, daß bei ausreichend input auch output kommt und die Session weiterläuft?
Gruß
der (p)ups
Antworten
Beitrag von Tini (0 Beiträge) am Samstag, 4.Dezember.2004, 12:52.
Re: Zitat: "Es gibt keine dummen Fragen - jeder hat mal angefangen!"
Hallo,
was verstehst Du unter "einen Namen geben"?
Jedes <form> geht auf ein eigenes Template!?
Tini
Formular 1:
<form action="http://baseportal.de/cgi-bin/baseportal.pl?htx=/tini1972/mitglieder/mitglieder" method="post" enctype="multipart/form-data">
<input type=hidden name="cmd=" value="search">
Formular 2:
<form action="http://baseportal.de/cgi-bin/baseportal.pl?htx=/tini1972/mitglieder/angebote" method="post" enctype="multipart/form-data">
<input type=hidden name="cmd=" value="search">
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Samstag, 4.Dezember.2004, 13:12.
Re: Zitat: "Es gibt keine dummen Fragen - jeder hat mal angefangen!"
Hallo Tini,
du solltest das erste Formular auch mit </form> abschließen.
Grüße
Oliver ;-)
Antworten
Beitrag von Claus (4645 Beiträge) am Samstag, 4.Dezember.2004, 13:30.
Re: Zitat: "Es gibt keine dummen Fragen - jeder hat mal angefangen!"
Antworten
Beitrag von Tini (0 Beiträge) am Samstag, 4.Dezember.2004, 16:04.
Re: Zitat: "Es gibt keine dummen Fragen - jeder hat mal angefangen!"
:-) Danke für die zahlreiche Hilfe - das wars!
Tini
Antworten