Hawkeye Geschrieben 27. Juni 2003 Teilen Geschrieben 27. Juni 2003 Hallo Leute, ich habe hier ein doch mehr oder minder seltsames Problem. Ich habe eine Folge von Formularen, die assistenen-like per "weiter" nacheinander aufgerufen werden. Nun passiert es aber mal, dass manche Teile nicht abgefragt werden muessen. Das heisst, wenn jemand nur einen Monitor bestellt, muessen wir nicht unbedingt fragen, welche Software da drauf soll. Also habe ich ein wenig gebastelt und mit Hilfe von PHP es tatsaechlich hingebogen, dass das Formular, was nur bei der Bestellung eines Computers relevant ist, nur wirklich dann anzuzeigen, wenn eben ein Computer ausgewaehlt wurde. Das ganze fusst darauf, dass ich im Submit-Feld einen Eventhandler "onclick" verwendet habe und der Teil, der dann hinter =" kommt wird je nach Situation per Templates reingeparst. Da natuerlich eine Variable dafuer abgefragt werden muss, wird der Computer ueber einen andere Submit-Button ausgewaehlt, welcher die Seite erneut laedt und somit die Variable uebergibt. Der "weiter"-Button hat einen neuen Wert und wird schliesslich auf "weiter" geklickt, geht er, dank des Javascriptes auf die ausgewaehlte Seite. So, das funktioniert alles. Warum schreibe ich dann, ich haette ein Problem? Ganz einfach. Ich bin wieder an einem Punkt, an dem ich das machen muss und habe quasi die gesamte Vorgehensweise reproduziert. Im HTML-Quelltext sind auch alle Platzhalter mit den korrekten Werten gefuellt, aber mir sagt das Java-Script dauernd, dass Fehler auf der Seite waeren. Somit umgeht er den Event-Handler und greift auf das <Form action="..."> zurureck, welches auf "$_SERVER[php_SELF]" steht und somit die Seite erneut laedt. Allerdings habe ich alles uebernommen, das Java-Script 1:1 uebernommen und auch keine syntaktischen Fehler gefunden. Was kann das sein? :confused: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
beebof Geschrieben 27. Juni 2003 Teilen Geschrieben 27. Juni 2003 Original geschrieben von Hawkeye Im HTML-Quelltext sind auch alle Platzhalter mit den korrekten Werten gefuellt, aber mir sagt das Java-Script dauernd, dass Fehler auf der Seite waeren. Somit umgeht er den Event-Handler und greift auf das <Form action="..."> zurureck, welches auf "$_SERVER[php_SELF]" steht und somit die Seite erneut laedt. Allerdings habe ich alles uebernommen, das Java-Script 1:1 uebernommen und auch keine syntaktischen Fehler gefunden. Was kann das sein? :confused: *mal in die Glaskugel schau* Hmmm... Poste doch mal den Quelltext von der Seite, wo der JavaScript Fehler ist. (weil ein Fehler muss da sein, auch der IExplorer erfindet keine...) Vielleicht kann man dir dann helfen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 27. Juni 2003 Teilen Geschrieben 27. Juni 2003 Hm, ganz übler Stil. Du willst etwas Clientseitig beeinflussen, was eigentlich auf dem Server ablaufen soll. Was ist wenn der User kein Javascript aktiviert hat oder absichtlich die falsche Seite aufruft? Du kannst auch die Ausgabe verschiedener Screens in einem Skript handeln. Was bei massiven Gebrauch in Spaghetticode enden kann. Oder du arbeitest mit "Redirects" 27.9. Wie erzeuge ich mit PHP einen Redirect auf eine andere Seite? http://www.dclp-faq.de/q/q-http-redirect.html Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hawkeye Geschrieben 27. Juni 2003 Autor Teilen Geschrieben 27. Juni 2003 Okay. Hier nun erstmal die Seite in gekuerzter Form: <!doctype html public "-//W3C//DTD HTML 4.0 //DE"> <html> <head> <title>Formular</title> <script type="text/javascript"> <!-- function weiter(ziel) { document.main.action = ziel; document.main.submit(); } //--> </script> </head> <body bgcolor="#FFCC66" topmargin="0" leftmargin="0"> <form action="{FORM_ACTION}" method="POST"> [...] <table cellpadding="4" width="100%" bgcolor="#FFFF99" cellspacing="0" border="0"> <tr> <td width="15%" bgcolor="#006666" valign="top"> <font class="drei">Sonstiges/<br>Besonderheiten:</font> </td> <td> <textarea name="Sonstiges" cols="50" rows="5">{SONST}</Textarea> </td> </tr> <tr> <td width="15%" bgcolor="#006666" valign="top"> <font class="drei"> </font> </td> <td valign= "top"> Antragssteller = Angemeldeter Benutzer? <input type="submit" name="BUTTON[0]" value ="Ja"> <input type="submit" name="BUTTON[1]" value ="Nein"> </td> </tr> </table> <table cellpadding="5" cellspacing="0" border="0" width="100%"> <tr> <td width="15%"> </td> <td width="15%"> <input type="Reset" value=" Daten löschen "> <td> <input type="submit" name="BUTTON[2]" value=" weiter " onclick="{WEITER}"> </td> </tr> </table> </form> </body> </html> [/PHP] So, und zum Verstaendnis noch die Dinge, die ich per PHP in {weiter} und {FORM_ACTION} parse und wie: [php] [...] $tpl = new IntegratedTemplate("../templates"); $tpl->loadTemplatefile("daten.html" ,true, true); [...] $tpl->setVariable("FORM_ACTION", $_SERVER[PHP_SELF]); if($_POST[BUTTON][0]=="Ja") { $tpl->setVariable("WEITER","weiter('../scripts/overview.php');"); } if ($_POST[BUTTON][1]=="Nein") { $tpl->setVariable("WEITER","weiter('../scripts/auswahl_antr.php');"); } $tpl->show(); [...] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 27. Juni 2003 Teilen Geschrieben 27. Juni 2003 Also wenn du schon mit Templates arbeitest, was natürlich die beste Lösung ist, verstehe ich nich wofür der onClick Handler ist. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
beebof Geschrieben 27. Juni 2003 Teilen Geschrieben 27. Juni 2003 Original geschrieben von Hawkeye document.main.action = ziel; document.main.submit(); ... <form action="{FORM_ACTION}" method="POST"> [/php] [/b] hmmm... Wenn ich das richtig verstehe, sprichst du mit "document.main" dein Formular an, oder? Aber dein Formular heisst nicht so. Probier mal folgendes: [php] <form name="main" action="{FORM_ACTION}" method="POST"> Sicher bin ich mir allerdings auch nicht. :confused: Falls ich mich irre, korrigiert micht bitte! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hawkeye Geschrieben 27. Juni 2003 Autor Teilen Geschrieben 27. Juni 2003 Original geschrieben von Jaraz Also wenn du schon mit Templates arbeitest, was natürlich die beste Lösung ist, verstehe ich nich wofür der onClick Handler ist. Gruß Jaraz Nunja. Wie bereits gesagt, ist das, was in die Templates geschrieben wird, abhaengig von der Auswahl. Da die natuerlich in Variablen gefuellt wird, muss gezwungenermassen die Seite nach der Auswahl neu geladen werden, da die Variablen sonst noch nicht vorhanden sind. Wenn ich jetzt in {FORM_ACTION} die Seite reinschreiben will, die ausgewaehlt wird, wird trotzdem zu beginn immer die Seite erneut geladen und beim naechsten Druecken einen der Buttons eben die Seite geladen, die bei der Auswahl davor haette geladen werden sollen - egal, ob ich "Ja" oder "Nein" anklicke. Klar, schliesslich ist die Variable ja nach dem Reload auf "Ja" oder "Nein" gesetzt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hawkeye Geschrieben 27. Juni 2003 Autor Teilen Geschrieben 27. Juni 2003 @beebof Lass Dich knuddeln! Klar, dass es nicht klappen kann. Ich hab zwar das Script aus dem anderen Formular rueberkopiert, aber natuerlich nicht an den form-Tag angepasst! Danke. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 27. Juni 2003 Teilen Geschrieben 27. Juni 2003 Auch wenn es jetzt funktioniert. Wenn du keinen Bock hast, brauchste nicht zu antworten. Würde es dann nicht reichen die Auswahl nicht über Buttons, sondern Radio Buttons oder Checkboxen zu realisieren und dann je nachdem welcher Radio Button gewählt wurde auf die entsprechende Seite weiterzuleiten? Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hawkeye Geschrieben 27. Juni 2003 Autor Teilen Geschrieben 27. Juni 2003 Original geschrieben von Jaraz Auch wenn es jetzt funktioniert. Wenn du keinen Bock hast, brauchste nicht zu antworten. :D Würde es dann nicht reichen die Auswahl nicht über Buttons, sondern Radio Buttons oder Checkboxen zu realisieren und dann je nachdem welcher Radio Button gewählt wurde auf die entsprechende Seite weiterzuleiten? Natuerlich wuerde das reichen, aber die Werte werden dann doch erst in die Variablen geschrieben, wenn das Dokument abgeschickt wird. Dass heisst, vorher kann ich keine Fallunterscheidung machen, denn er kann ja keine Werte " Auswahl='Ja' " ueberpruefen, bis ich den Submit-Button gedrueckt habe. ...und dann ist es schon zu spaet... ...oder wuesstest Du da etwas, was mir das ermoeglicht? Der Punkt ist ja, dass die Seite nach der Auswahl mind. einmal neu geladen werden muss, damit klar ist, was ausgewaehlt wurde. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 27. Juni 2003 Teilen Geschrieben 27. Juni 2003 Original geschrieben von Hawkeye Der Punkt ist ja, dass die Seite nach der Auswahl mind. einmal neu geladen werden muss, damit klar ist, was ausgewaehlt wurde. Aber wenn die Seite sowieso neu geladen wird, könntest du doch auch das Ziel des Formulars ändern, oder? Vielleicht sollten wir da Sonntag in ner ruhigen Minute drüber sprechen. Ich glaube wir reden aneinander vorbei. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hawkeye Geschrieben 27. Juni 2003 Autor Teilen Geschrieben 27. Juni 2003 Original geschrieben von Jaraz Vielleicht sollten wir da Sonntag in ner ruhigen Minute drüber sprechen. Ich glaube wir reden aneinander vorbei. Ich vermute auch. Jo, lass Sonntag da mal drueber quatschen. 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.