MoechtegernFI Geschrieben 14. Mai 2005 Teilen Geschrieben 14. Mai 2005 Hallo Zusammen! Ich habe mittels HTML und PHP eine Seite erstellt, auf der ich mittels mehrerer Buttons verschiedene Seiten ansteuern will. Einige der Buttons und die Checkboxen sind mittels PHP dynamisch erstellt worden. JavaScript soll überprüfen ob eine der Checkboxen gesetz ist und wenn button1gesetzt ist, mittels eines window.confirm nochmal nachfragen, ob wirklich alles abgeschickt werden soll. Die dynamisch generierten Buttons sollen ein neues Fenster öffnen, welches wieder Informationen zu den mit den einzelnen Buttons zusammenhängenden Datensätzen mit PHP darstellt. Das funktioniert soweit auch alles bis auf folgende Probleme: Ist keine Checkbox ausgewählt und ich button1 drücke, wird nach dem alert die Seite neu geladen.(was er nicht tun soll) Klicke ich auf einen der dxnamisch generierten buttons, öffnet er das neue Fenster mit Seite1 und stellt auch alles einwandfrei dar.... das macht er dann aber auch wenn ich danach auf button1 klicke und dann soll er ja Seite2 öffnen. Desweiteren bin ich was JavaScript angeht ne ziemliche Flasche und kann mir nicht mehr selbst helfen. Mittlerweile sitz ich schon 2 volle Tage an diesem Problem und werd solangsam GAGA. Hoffentlich kann mir jemand helfen. Hier der Quellcode: (Das Form ist gekürzt... wäre sonst zuviel des guten ) <form name=\"allang\" onsubmit=\"return checkbox()\"> <input type=\"submit\" value=\"abschicken\" name=\"button1\" onClick=\"checkbox(this.name)\"> <input type=\"submit\" name=\"pos" .$i ."\" value=\"" .$numberbp ."\" class=\"button\" onClick=\"this.form.target='blank'; this.form.action='bewertungenp.php';this.form.method='post';\"> // ein dynamisch generierter button <script language=\"JavaScript\"> function checkbox(button) { checked = true; anz = " .$total ."; if(anz > 15) { anz = \"15\"; } if(button==\"button1\") //prüfen ob button1 gesetzt ist { a=0; for (i=1; i<=(anz) ; i++ ) // prüfen ob eine der dynamisch generierten Checkboxen gesetzt ist { feld1=eval(\"document.all.check\"+i); if (feld1.checked == true) //wenn checkbox gesetzt ist, a auf 1 setzen { a=1; } } if(a<1) { alert('Bitte wählen Sie eine Checkbox aus!'); checked = false; } if(checked == true) { text = \"wirklich weiter?\"; box = window.confirm(text); if(box == true) { document.allang.target = \"main\"; document.allang.method = \"post\"; document.allang.action = \"seite2.php\"; checked = true; } else { checked = false; } } } return checked; } </script> Danke im Voraus, Boiorix Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aiun Geschrieben 15. Mai 2005 Teilen Geschrieben 15. Mai 2005 1. such' dir mal ein Template-System damit du den Code nicht in PHP ausgeben musst. 2. Javascript-Funktionen soweit möglich immer an den Anfang der Seite dient der Übersicht und damit steht fest das die Funktion überall zur Verfügung steht. 3. Du benutzt überall <input type="submit">, das das Formular da abgeschickt wird, also die seite neu lädt, ist normal. versuch mal eine Funktion zu schreiben die deine Javascript-Optionen ausführt und dann ein form.submit(); macht. Damit kannst du sichergehen das deine JS-Befehle ZUERST ausgeführt werden. <input type="button" ist da anzubieten. Vorsicht ! <button....> funktioniert je nach browser und schreibweise wie ein Submit anstatt document.formname gib dem Formular mal eine ID und mach dann document.getElementById() ... is sicherer ^^ ich hoffe die tips helfen dir ein wenig, versuch' auf jeden fall mal nicht überall mit type="submit"'s zu arbeiten.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MoechtegernFI Geschrieben 15. Mai 2005 Autor Teilen Geschrieben 15. Mai 2005 Vielen Dank für deine Hilfe! Ich hab die Submits nun alle durch buttons ersetzt und es scheint soweit alles zu klappen..... .......bis auf eine Kleinigkeit: Aus irgend einem Grund werden die Namen der Buttons nicht mitgeschickt. Und dementsprechend springt er auf der nächsten Seite nicht ins If(isset()). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MoechtegernFI Geschrieben 16. Mai 2005 Autor Teilen Geschrieben 16. Mai 2005 So...... Ich habe nun <input type=\"submit\" value=\"abschicken\" name=\"button1\" onClick=\"checkbox(this.name)\"> in <button name=\"button1\" onClick=\"checkbox(this.name)\">abschicken</button> und im JavaScript if(box == true) { document.allang.target = \"main\"; document.allang.method = \"post\"; document.allang.action = \"seite2.php\"; checked = true; } in if(box == true) { document.allang.target = \"main\"; document.allang.method = \"post\"; document.allang.action = \"seite2.php\"; checked = true; document.allang.submit(); } abgeändert (die dynamisch generierten Buttons habe ich wieder als submit-Buttons definiert) und schon funktioniert der Spass :marine .... ber auch nur im IE. Firefox läd die Seite nach dem winow.confirm immernoch neu. Aber das Übel geh ich jetzt einfach mal ein(solange ich keine andere Lösung hab). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 16. Mai 2005 Teilen Geschrieben 16. Mai 2005 Warum mit Javascript die Seite einschränken, wenn du mit PHP alles auf dem Server abarbeiten kannst. Schicke alles an eine Seite und include dann z.B. die Unterseiten. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MoechtegernFI Geschrieben 16. Mai 2005 Autor Teilen Geschrieben 16. Mai 2005 hmmmm...... mit include habe ich mich bisher noch gar nicht befasst. Die 3 Seiten die ich mit den dynamisch generierten Buttons ansteuere, werden auch noch von anderen Seiten aus aufgerufen. Ich kann mir im moment noch keinen Reim drauf machen wie das alles mit include realisiert werden kann. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 16. Mai 2005 Teilen Geschrieben 16. Mai 2005 Hier mal ein Ansatz,... if ( !empty($_POST['button1'])) { //Button 1 wurde gedruckt include( 'button1.action.php'); } elseif ( !empty( $_POST['button2')) { //Button 2 wurde gedruckt include( 'button2.action.php'); } elseif ( !empty( $_POST['button3')) { //Button 3 wurde gedruckt include( 'button3.action.php'); } else { include( 'form.php'); } [/PHP] form.php [PHP] <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post"> <input type="submit" name="button1"/> <input type="submit" name="button2"/> <input type="submit" name="button3"/> </form> Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MoechtegernFI Geschrieben 16. Mai 2005 Autor Teilen Geschrieben 16. Mai 2005 Danke für Ansatz, den hab ich jetzt mal testweise umgesetzt und funktioniert auch soweit. Feine Sache mit dem include... Aber da ich ja ein alert und ein window.confirm brauche, nach denen der Browser die Seite ja nicht neu laden soll, komme ich doch nicht drum herum, das mit nem submit() innerhalb der Javascript-Funktion abzuschicken? (was zumindest beim IE funktioniert) Oder reden wir jetzt alle irgendwie aneinander vorbei? :confused: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aiun Geschrieben 17. Mai 2005 Teilen Geschrieben 17. Mai 2005 ich glaube er meint das nur mit PHP zu machen was an sich auch eine Schöne sache ist. Hab mir deinen Code jetzt nicht nochmal angegugt...hängt von der Situation ab was nötig oder Sinnvoll ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MoechtegernFI Geschrieben 18. Mai 2005 Autor Teilen Geschrieben 18. Mai 2005 Kann es sein daß Firefox sich mit dem <button>-Tag nicht richtig verträgt?? Firefox übermittelt den namen des Buttons nicht... was IE wiederum tut. Dann hab ich mir gedacht, machste halt wieder nen Submit-Button draus und nutzt stop(); damit die Seite nicht wieder neu läd welches beim FF funktioniert aber beim IE wieder nicht. Hatte man nicht vor 20 Jahren schon die Diskussion aufgeworfen dass alles einheitlicher werden soll? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 18. Mai 2005 Teilen Geschrieben 18. Mai 2005 Hi, es handelt sich NICHT um einen <button> sondern um ein <input type="submit"/> !! Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MoechtegernFI Geschrieben 18. Mai 2005 Autor Teilen Geschrieben 18. Mai 2005 ich habe doch den <input type='submit'> in nen <button> abgeändert. S.O. 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.