Beitrag von Sander (8133 Beiträge) am Mittwoch, 1.November.2000, 16:39.
input type="hidden" im Formular?
Wie setze ich es um, das beim Aufruf des Eingabeformulars von verschiedenen Seiten über die URL ein versteckter Wert gesetzt wird, der die Seite identifiziert, von wo der Aufruf erfolgte?
Also von Seite 1 soll das Formular aufgerufen werden und dabei gleichzeitig das Feld "Seite" den Wert "1" bekommen, ohne das der Benutzer im Formular es selber eingeben muß, also unsichbar erscheint. Das gleiche von Seite 2 usw. Die Daten sollen dann in ein und derselben db gespeichert werden und nach den Seitennummern abgerufen werden können.
Antworten
Beitrag von anonym (129 Beiträge) am Mittwoch, 1.November.2000, 19:43.
Re: input type="hidden" im Formular?
Javascript:
Das Objekt location enthält die Linkadresse, von der aus der Aufruf erfolgte, wenn überhaupt ein Link benutzt wurde und nicht über die URL direkt in die Statuszeile eingegeben wurde.
Perl:
Der Wert steht vielleicht (?) in der ENV-Variable, du schreibst ihn in diesem Fall mit Perl in das versteckte Element. Also: out "<form><input type=hidden name=\"beispiel\" value =",$Adresse,"></form>"
Antworten
Beitrag von Sander (8133 Beiträge) am Donnerstag, 2.November.2000, 02:35.
Re: input type="hidden" im Formular?
vielsten Dank, werd es probieren
Antworten
Beitrag von anonym (129 Beiträge) am Donnerstag, 2.November.2000, 13:56.
Re: input type="hidden" im Formular?
Antworten
Beitrag von Sander (8133 Beiträge) am Donnerstag, 2.November.2000, 17:15. WWW: www.snowpage.de
Re: input type="hidden" im Formular?
Also ich hab immernoch Probleme, es nachzuvollziehen, habe nämlich kaum Ahnung von Perl. Bei deiner Lösung wird die URL mitgeschickt, versteh ich das richtig?
Die URL von der Seite, von der der Aufruf per Link erfolgte, nutzt mir leider nix. Ich hab eine Skigebietsseite mit Bewertung der Skigebiete und brauche nur bei der Ausgabe das Feld "Gebiet" -
Überschrift ist nämlich "Meinungen zum $gebiet", und es sollen nur Informationen zu diesem Gebiet ausgegeben werden. Zur Zeit habe ich für jedes Gebiet eine eigene Db, es ist aber zu umständlich beim ändern.
Also, ich rufe jetzt von Gebiet a das Template auf, und beim Ausfüllen des Formulars soll das Gebiet mit geschickt werden, ohne das es angezeigt wird. da müßt ich ja eigentlich auf der Seite a eine Variable erstellen, die ins Template mit übernommen und ans Formular übergeben wird. Gebe ich bei Listfield=Gebiet
mit an, erscheint es auch im Formular, das ist nicht schick. Jetzt läuft es noch über ein optionfeld, das nicht verändert werden kann, sieht aber auch nicht gut aus, und ich brauche halt eine Db für jedes Gebiet. Vieleicht findest du noch eine Lösung. Vielen Dank für die Mühe.
Antworten
Beitrag von Sander (8133 Beiträge) am Donnerstag, 2.November.2000, 18:48.
Re: input type="hidden" im Formular?
Teil der Lösung hab ich gefunden. Der wert wird in die Db geschrieben. Fehlt mir nur noch die Möglichkeit, auf der Seite, von der das Template aufgerufen wird, einen Wert als Variable zu setzen, die dann in das Formular als value""eschrieben wird.
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 3.November.2000, 14:47.
Re: input type="hidden" im Formular?
Antworten
Beitrag von Sander (8133 Beiträge) am Freitag, 3.November.2000, 15:12.
Re: input type="hidden" im Formular? gelöst
Antworten
Beitrag von Sander (8133 Beiträge) am Samstag, 4.November.2000, 03:44.
Re: input type="hidden" - neues Problem
Das mit der Variablen-übergabe klappt ja ganz gut. Doch da kommt ein neues Problem. ich hab den Aufruf verändert, um gleichzeitig auch die schon eingetragenen Daten über das Gebiet abzurufen.
<a href="/cgi-bin/baseportal.pl?htx=/deinname/deineeingabeseite&neuGebiet=xxx&Gebiet==xxx"> - klappt beim Aufruf. Aber füllt jemand das Form aus, listet er mir nach der Meldung "Eintrag hinzugefügt" alle Datensätze auf. Ich habs bei der Ausgabe schon mit <loop Gebiet^==$neuGebiet> probiert, aber das wird komplett ignoriert, d.h. er listet nix mehr. Kann mir jemand helfen?
Antworten
Beitrag von anonym (129 Beiträge) am Samstag, 4.November.2000, 16:27.
Re: input type="hidden" - neues Problem
Dass nach einem Eintrag komplett wieder aufgelistet wird liegt am BP-CGI, das automatisch wieder das komplette Template verarbeitet. Abstellen lässt sich die Ausgabe nur, wenn man in einer Perl-Loop mit Perl den Aufruf-Status überprüft und die Ausgabe verhindert. Den Status übergibt man mit einer Variable und kann derart die Ausgabe ggf. modifizieren oder auch unterdrücken.
Etwa so:
<loop code="perl"> # perl einschalten
if ($Status != "NeuerEintrag")
{
out "hier steht alles, was sonst in der loop stände, allerdings müssen Anführungszeichen mit \ maskiert werden."; out "\"Test\"";
}
<loop>
Nachteil des Verfahrens ist, dass man nicht gezielt aus der Schleife herausspringen kann, das sollte in jedem Fall möglich sein.
Antworten
Beitrag von Sander (8133 Beiträge) am Sonntag, 5.November.2000, 04:23.
Re: input type="hidden" - neues Problem
Hast mich ganz schön schwitzen lassen, bis irgendwas lief, wegen <loop code="perl">. Ich habs bloß aus dem Forum kopiert und eingefügt und nicht beachtet, das die " zuviel sind.;-)
Aber da ist doch bestimmt ein Denkfehler drin. Bei loop liest er die Daten aus der Db, und wenn da auf der ersten Seite vor dem Abschicken schon ein $Status vorhanden ist, listet das Cgi nix oder hab ich das falsch verstanden - und $Status kommt garnicht von der Db?
Antworten