Sebi80 Geschrieben 12. Oktober 2006 Teilen Geschrieben 12. Oktober 2006 Hallo. Stehe mal wieder vor einem Problem und hoffe auf Eure Hilfe. Ich habe in einem Formular 3 Schaltflächen. [Zurück][Weiter][Zurücksetzen] Problematisch ist die Sache mit [Zurück]und[Weiter] Wenn der Button "Weiter" gedrückt wird, soll der Benutzer auf die nächste Seite kommen und das Formular per Funktion abgeprüft werden. Wenn der User auf "Zurück" klickt soll er auf die vorherige Seite zurück kommen und das Formular nicht abgeprüft werden. Ich habe oben im Kopf des Formulars stehen: <form name="Formular" action="abc.php" method="POST" onSubmit="return chkFormular()"> stehen. Problem ist, dass sowohl beim "Zurück" als auch beim "Weiter"- Button natürlich dann die nächste Seite aufgerufen wird und abgeprüft wird. Wie bekomm ich das nun so hin, dass dort unterschieden wird? Muss ich da bei action und onsubmit eine Bedingung einbauen oder gibts da ne andere Möglichkeit oder wie kann ich das bewerkstelligen? Vielen Dank für hilfreiche Antworten. Gruss Sebi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 12. Oktober 2006 Teilen Geschrieben 12. Oktober 2006 Dann mach doch den "Zurück-Button" nicht als <input type="submit"> sondern einfach als <input type="button"> und gib ihm ein onclick="self.location.href='meineVorherigeSeite.php'" Reicht das so? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sebi80 Geschrieben 12. Oktober 2006 Autor Teilen Geschrieben 12. Oktober 2006 Jupp. Vielen Dank. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sebi80 Geschrieben 12. Oktober 2006 Autor Teilen Geschrieben 12. Oktober 2006 OK. Das funktioniert zwar, aber ich müsste irgendwie die Variablen übergeben. mit method="POST" klappt das in diesem Fall nicht. Gibts da irgend eine Möglichkeit? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m3rry Geschrieben 12. Oktober 2006 Teilen Geschrieben 12. Oktober 2006 Hallo Sebi, Es gibt mehrere Möglichkeiten das zu lösen, wie so oft. Frag auf dem Zieldokument ab, welcher Button gedrückt wurde, mit php z.b. if(!isset($_POST["submit2"])){ submit2 ist der Name des betätigten Buttons, jetzt weisst du welcher Button betätigt wurde und kannst z.b in den meta eine umleitung reinlegen, hier kannst du dann auf das zieldokument umleiten. Warum das etwas unschön ist sollte klar sein. Es wird immer das Zieldokument geladen und dann umgeleitet bei weiter / bzw zurück. Aber, du könntest mit php alle 3 Dokumente vor / zurück und absenden in das gleiche php file stecken und sie je nachdem, welcher button benutzt wurde anzeigen lassen. Aslo nur den HTML Code ändern welche angezeigt werden soll. Eine zweite Möglichkeit wäre, die beiden Buttons vor und zurück mit java zu hinterlegen hierzu ein Link Selfhtml Das letzte was mir einfällt, wäre die beiden Buttons vor und zurück keine Buttons sein zu lassen, sondern einfach Bilder zu hinterlegen, wo du dann einen stinknormalen Link drauf legst. Hier würde nur der visualisierte Button wegfallen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m3rry Geschrieben 12. Oktober 2006 Teilen Geschrieben 12. Oktober 2006 OK. Das funktioniert zwar, aber ich müsste irgendwie die Variablen übergeben. mit method="POST" klappt das in diesem Fall nicht. Gibts da irgend eine Möglichkeit? Du müsstest dann mit Sessions arbeiten und die Variablen hier hinterlegen. session_start(); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 12. Oktober 2006 Teilen Geschrieben 12. Oktober 2006 hmm also ich denke mal es ist nicht wichtig nach isset($_POST['submit2']) oder so zu fragen. die formulareingaben sollen bei "zurück" ja gar nicht geprüft, also auch nicht gespeichert werden oder? dann könntest du einfach an das self.location.href deine variablen (wahrscheinlich geht es um die steuervariablen) anhängen und auf der php seite nicht nur nach den $_POST sondern, wenn diese nicht vorhand sind, nach $_GET abfragen "self.location.href='meineFormular.php?formularseite=" & $formularseite & "&var1=x&var2=x'" [/PHP] auf der php seite dann: [PHP] $_POST['formularseite'] != "" ? $formularseite = $_POST['formularseite'] : $formularseite = $_POST['formularseite'] so in etwa. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sebi80 Geschrieben 12. Oktober 2006 Autor Teilen Geschrieben 12. Oktober 2006 Oh weh, das scheint nicht so einfach zu werden Aber vielen Dank ich versuch mal ob ich das hinbekomme. Es soll ein Onlinebewerbungsformular werden in mehrerern Schritten. Deshalb muss ich vorhandene Eingaben eigentlich schon in den Variablen speichern, sonst muss man ja alles nochmal eingeben wenn man mal zurück gegangen ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sebi80 Geschrieben 12. Oktober 2006 Autor Teilen Geschrieben 12. Oktober 2006 Bleibt mir eigentlich nur das Ding mit der Session oder? Davon hab ich nämlich gar keine Ahnung. Das heisst aber auch, dass ich ein Login brauche und somit auch eine Datenbank oder liege ich da falsch? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 12. Oktober 2006 Teilen Geschrieben 12. Oktober 2006 wieso? sollen die eigegeben daten im formular beim klick auf zurück auch gespeichert werden? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m3rry Geschrieben 12. Oktober 2006 Teilen Geschrieben 12. Oktober 2006 hmm also ich denke mal es ist nicht wichtig nach isset($_POST['submit2']) oder so zu fragen. die formulareingaben sollen bei "zurück" ja gar nicht geprüft, also auch nicht gespeichert werden oder? .. Doch, genau das möchte er ja, er will die Daten welche im Formular sind auch an die Dokumente zurück und vor übergeben. Die Dokumente zurück und vor sind aber noch 2 weitere Dokumente. Deshalb kann er nicht im Formular ein und das selbe Ziel angeben. Wenn man auf Variablen in allen php Dokumenten zugreifen möchte, macht man das wie gesagt mit Sessions. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 12. Oktober 2006 Teilen Geschrieben 12. Oktober 2006 hmm dann macht die sache aber keinen sinn. denn wieso sollen dann bei klick auf "zurück" die daten nicht überprüft werden? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sebi80 Geschrieben 12. Oktober 2006 Autor Teilen Geschrieben 12. Oktober 2006 Ich habe ein Formular mit insgesamt 5 Schritten. Also nicht nur ein Vor und ein Weiter. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m3rry Geschrieben 12. Oktober 2006 Teilen Geschrieben 12. Oktober 2006 Bleibt mir eigentlich nur das Ding mit der Session oder? Davon hab ich nämlich gar keine Ahnung. Das heisst aber auch, dass ich ein Login brauche und somit auch eine Datenbank oder liege ich da falsch? Hmm, nein naaja nicht umbedingt, Sessions sind wie Cookies, die Variablen werden gespeichert bis du sagst er soll sie verwerfen, da kann sein ( beim schließen des Browsers oder nach einer Stunde etc.) aber jeder benutzer bekommt seine eigenen session id`s er unterscheidet nach browser.id und pc und hält die Daten so lange vor wie du es vorgibst. Was genau hast du denn vor erzähl dochmal um was es genau geht und welche mittel du zur Verfügung hast, also du arbeitest mit php und Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sebi80 Geschrieben 12. Oktober 2006 Autor Teilen Geschrieben 12. Oktober 2006 hmm dann macht die sache aber keinen sinn. denn wieso sollen dann bei klick auf "zurück" die daten nicht überprüft werden? Weil Sie spätestens wenn man wieder nach Vorne weggeht überprüft wird. Ich will ja nur verhindern, dass wenn man auf seite 2 ist und noch nichts eingegeben hat beim "Zurück" nicht alles erst eingeben muss nur um was auszubessern. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 12. Oktober 2006 Teilen Geschrieben 12. Oktober 2006 ah! na dann is alles klar und du solltest die Session Lösung von m3rry nehmen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m3rry Geschrieben 12. Oktober 2006 Teilen Geschrieben 12. Oktober 2006 Ich habe ein Formular mit insgesamt 5 Schritten. Also nicht nur ein Vor und ein Weiter. Äääh .. da brauchst du keine Daten vorhalten, das macht der Browser selbst. Füll mal ein Formular aus, z.B hier im Forum einen Text. Danach klickst du auf absenden und benutzt dann den browser zurück button. Die Daten sind noch vorhanden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m3rry Geschrieben 12. Oktober 2006 Teilen Geschrieben 12. Oktober 2006 Weil Sie spätestens wenn man wieder nach Vorne weggeht überprüft wird. Ich will ja nur verhindern, dass wenn man auf seite 2 ist und noch nichts eingegeben hat beim "Zurück" nicht alles erst eingeben muss nur um was auszubessern. Aso ok dann vergiß meinen letzten Post, der stimmt zwar inhaltlich aber ja, mit Sessions geht das prima du kannst die Variablen setzen und erst zum Ende alle absenden und "übersenden" Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sebi80 Geschrieben 12. Oktober 2006 Autor Teilen Geschrieben 12. Oktober 2006 OK. Ganz von Anfang an. Ich habe eine vorhandene (nicht von mir gestaltete) Homepage die ich um ein Onlinebewerbungsformular erweitern soll. Da sich mein Vorgänger anscheinend keinerlei Gedanken gemacht hat, dass auf seine Seite, die von den Maßen her festgelegt ist, kein Platz ist für EIN Formular muss ich das ganze nun in ca. 5 Schritte unterteilen. Daher auch der "Zurück" und "Weiter" Button. Im Prinzip habe ich eine php seite, in der aber eigentlich mehr html ist als PHP. Ich weiss nicht was ich noch mehr erzählen könnte. Wie gesagt, mit Method=Post geht das ja ganz gut insofern man im Browser auf vor und zurück klickt. Dann werden auch die eingegebenen Daten weiterhin in den Feldern angezeigt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sebi80 Geschrieben 12. Oktober 2006 Autor Teilen Geschrieben 12. Oktober 2006 Andere Frage. Wenn ich mit einem Popup arbeite, dass sich öffnet ,wenn man den Link "Onlinebewerbung" klickt öffnet kann ich das mit den Sessions umgehen oder? Also wenn ich das Formular auf eine Seite mache und dort alle Daten eingeben lasse. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m3rry Geschrieben 12. Oktober 2006 Teilen Geschrieben 12. Oktober 2006 Ja es macht sinn was du möchtest und worauf du achtest und der von uns beschriebene Weg mit session_start() ist auch der Richtige. Schau einfach mal unter php.net und dort suchst du in der function list nach "session" hier hast du dann alle relevanten Punkte dazu verlinkt. Du fängst in deinem Dokument Seite 1 an, mit <? session_start(); [/PHP] Dann fügst du Variablen an deine Session an. Übernimmst du die Variablen aus dem Vorformular und übergibst sie wieder an die Sessionid. Den zurück / vor Button kannst du dann getrost als Schrift und link einsetzen, die einmalig gesetzten Variablen bleiben erhalten solange die Session aktiv ist. Wenn er Daten ändert, im Formular übergibst du sie ja wieder in die Session das hat den Vorteil das keine Daten unnötig abgesendet werden und am Ende übergibst du alle in der Session registrierten Variablen in dein Ziel. Irgenwohin sollen die Daten ja gespeichert werden nehme ich an Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m3rry Geschrieben 12. Oktober 2006 Teilen Geschrieben 12. Oktober 2006 Andere Frage. Wenn ich mit einem Popup arbeite, dass sich öffnet ,wenn man den Link "Onlinebewerbung" klickt öffnet kann ich das mit den Sessions umgehen oder? Also wenn ich das Formular auf eine Seite mache und dort alle Daten eingeben lasse. Ja, klar ist dann von der Hp getrennt und du kannst Grenzenlos lange Formulare erstellen : ) Schön ist es zwar nicht, wenn eine Webseite sich in neue Fenster übergibt aber sicher einfacher zu gestalten. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sebi80 Geschrieben 12. Oktober 2006 Autor Teilen Geschrieben 12. Oktober 2006 Ja das ist dann auch schon das nächste Problem, dass ich noch nicht angegangen bin. Die Daten sollen dann in einer Email an die Personalabteilung geschickt werden und die Session danach praktisch wieder gelöscht werden bzw. deren Daten. Ganz zu schweigen mit dem am Ende des Formulars fälligen Dateianhang Ich nehme an, die Sache mit der Session ist zeitaufwendiger als die mit dem Popup oder? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m3rry Geschrieben 12. Oktober 2006 Teilen Geschrieben 12. Oktober 2006 ach, alles halb so wild ^^ Jau, das mit den Sessions ist aufwendiger, aber nicht allzusehr. Die Session wird nur für den PC & Browser gehalten, wenn du das definierst, egal wieviel User gleichzeitig ein Formular ausfüllen die kommen sich nicht in die quere, deshalb ist das mit dem löschen nicht so wichtig. Man kann aber eine Session auch am Ende wenn alles übertragen ist killen, mit session_destroy(); Ein Popup ist sehr simpel, mach einfach einen Link. <a href= "http://www.neueseite.de/xxx.html" target = "_blank" >Onlineformular</a> Hier verknüpfst du das Dokument. Du kannst das alles an einen Mailserver übergeben, wenn du einen zur verfügung hast. Das funktioniert auch mit php. Dazu gibt es die Funktion mail() Tja und Dateianhänge müsstest du vorher auf deinen Webserver hochladen lassen und sie dann in deiner eMail anhängen. Oder sie auf dem Webserver ablegen und in die eMail einen Link zu den Anhängen hinterlegen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sebi80 Geschrieben 12. Oktober 2006 Autor Teilen Geschrieben 12. Oktober 2006 Jo für dich ist das halb so wild. Du scheinst es ja zu können. Aber ich fühl mich grad wie in einem fremden Land. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.