PieDie Geschrieben 7. Dezember 2005 Teilen Geschrieben 7. Dezember 2005 Hi Leute, Ich möchte den Hauptframe durch klick auf einen Submit-Button aktualiesieren. Der Button liegt in einem Iframe. Der Iframe soll nach dem Klick aber nicht aktualisiert werden.Das Problem: <a href=\"Die Seite die aktualisiert werden soll.php?Irgendwo=1"\ target=\"Hauptframe"\> <input type=\"Submit\" name=\"user_anlegen\" value=\"Hinzufügen\"></a> funktioniert nicht. Der erwartete Refreshvorgang bleibt aus. es passiert nix. Ich habe auch Javascript in den Button einzubinden versucht: <input type=\"button\" name=\"refresh\" value=\"blub\" onclick=\"javascript:location.reload();\" target=\"Hauptframe\"> Zwar wird ein Refresh ausgelöst, aber der Hauptframe wird davon nicht berührt (obwohl "target" angegeben ist, was aber vom Parser wohl übergangen wird...) Ich hoffe ihr versteht was ich meine. THX PS: Wenn ihr ein Javascript habt, das ohne Button funzt, nehm ich auch das Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 7. Dezember 2005 Teilen Geschrieben 7. Dezember 2005 javascript: parent.frames[2].reload(); Dabei musst du von deiner Seite ausgehen. Also erstmal zum Übergeordnetetn (parent) und da dann den 2ten Frame (im Quelltext)... musst du an deine Seite anpassen. EDIT: parent.FrameName müsste auch gehen. also parent.Hauptframe bei dir. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PieDie Geschrieben 7. Dezember 2005 Autor Teilen Geschrieben 7. Dezember 2005 Weder das eine noch das andere klappt... Ich bekomme stets die Meldung, BLABLABLA ist null oder hat kein Objekt oder "Syntaxfehler" und dergleichen, egal wie ichs drehe. WArum kann man nicht einfach sagen javascript: hauptframe.reload(); Hauptframe ist doch deklariert. ISt Javascript so dumm gemacht? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 7. Dezember 2005 Teilen Geschrieben 7. Dezember 2005 Hauptframe ist doch deklariert. ISt Javascript so dumm gemacht? Javascript läuft auf der Seite, in der es steht... und die Seite wird von einer anderen Seite eingebunden. Die Seite, die Hauptframe kennt ist also nicht die Seite, in der Javascript läuft (deswegen ja parent). Du darfst nicht immer das als Realität nehmen, was du im Browser vor dir siehst, das wäre nämlich eher dumm Ach ja... BlaBla is null heisst, er kennt das Objekt an der Stelle nicht. Probier also mal Self.parent oder was auch immer. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PieDie Geschrieben 7. Dezember 2005 Autor Teilen Geschrieben 7. Dezember 2005 self.wasauchimmer.reload(); MAAAAN das geht auch nicht:D Aber self macg er acuh nicht... Hab ich halt Pech gehabt. Hab keine Lust, ewigkeiten dranherumzuhühnern, ohne ein Ergebnis zu bekommen, das eh nicht von existentieller Wichtigkeit ist... Danke für deine Mühen:) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 7. Dezember 2005 Teilen Geschrieben 7. Dezember 2005 self.wasauchimmer.reload(); MAAAAN das geht auch nicht:D Das mit dem self war auch nur ein Beispiel, dachte mir schon, dass da was anderes hinmuss (deswegen ja das "oder so"). Wenn du firefox benutzt kannst du dir mit dem DOM-Inspektor (weiss nicht ob das ne Extension ist oder immer dabei) den aufbau deiner Seite ansehen und siehst dann, wie das ganze aufgebaut ist und u.U. auch, was du ansprechen musst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PieDie Geschrieben 7. Dezember 2005 Autor Teilen Geschrieben 7. Dezember 2005 Ja nöö Firefox ist nicht relevant. Ich verstehe nicht, warum es so schwer ist, einen anderen Frame zu aktualisieren... Javascript suxx:( Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tobias-digital Geschrieben 7. Dezember 2005 Teilen Geschrieben 7. Dezember 2005 Hi! Ich versteht das noch nicht so ganz. Um das nachvollziehen zu können brauche ich Antworten: Hast Du ein Frameset? Wie viele Frames? In einem der Frames liegt ist ein iframe in dem eine Seite angezeigt wird, die einen Button enthält? Gruß, Tobias Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 7. Dezember 2005 Teilen Geschrieben 7. Dezember 2005 Ja nöö Firefox ist nicht relevant. Mir ist egal, ob er für dich relevant ist Es ging mir nur darum, dass du damit die Struktur deiner Seite (DOM) sehen kannst. P.S. Mag ja sein, dass ein Hammer für dich nicht relevant ist, aber einen Nagel bekommst du mit ner Möhre nunmal schlecht in die Wand Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 7. Dezember 2005 Teilen Geschrieben 7. Dezember 2005 Ich sehe noch nicht ganz wozu hier eigentlich Javascript notwendig ist. Wenn die Seite in einem Frame liegt und der Aufruf mittels submit erfolgen soll, kann man doch einfach folgendes machen: <form action="deine.zieldatei" method="get"> <!-- ggf. noch ein target angeben --> <input type="submit" value="Beschriftung des Buttons" /> </form> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PieDie Geschrieben 8. Dezember 2005 Autor Teilen Geschrieben 8. Dezember 2005 Mann, das sind ja 3 Wünsche auf einmal Also das Framework (man vergebe mir das Wortspiel) sieht etwa so aus: --------------------------------- TITEL der Seite --------------------------------- | Navi| Liste, die mit PHP/SQL | Navi| erstellt wird. | Navi| | Navi| ---------------- | Navi| |I-Frame mit | | Navi| |dem Button | | Navi| |______________| -------------------------------- Navi repräsentiert die Navigationsleiste; Titel ist nicht die schmale Titelleiste von WIndows sondern tatsächlich eine eigne Titelleitste auf der Seite. Was ich nun möchte: Der Hauptframe mit der Liste wird in PHP geschrieben und durch eine SQL-Liste/Tabelle (wasauchimmer) gefüllt. Dort sind Benutzer aufgelistet Des weiteren gibt es einen Link "Neuer User". Klickt man den an, erscheint im Iframe (das Vieh unten im Hauptframe) ein Formular mit Editfeld und "Abschicken"-Button. Klickt man auf Abschicken, wir der Iframe neu geladen udn dort steht dann "Use wurde angelegt". Ziel ist es nun, den Hauptframe zu aktualisieren, oder wenigstens dazu zu bewegen, die Seite per Link neu zu laden (was letzten Endes egal ist, was davon nun geschieht- Hauptsache es passiert etwas) Wichtig ist ausserdem, dass der Iframe den "User wurde angelegt" Text behält. So wird die Liste erneuert, sodass man nach dem Abschicken direkt den neuen User in der Liste oben sehen kann. ich hoffe ihr wisst nun genau, was ich machne möchte:floet: @Enrico: Deine Idee ist bereits auf andere Weise implementiert: Der Submit-Button hat schon eine Funktion, nämlcih das anlegen eiens neuen users und das anzeigen des "User wurde angelegt Meldung" nun möchte ich gerne ncoh eine Refresh Anweisung für den Hauptframe dazutun, die auch bei diesem Klick gescheiht. THX für eure Geduld:) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 8. Dezember 2005 Teilen Geschrieben 8. Dezember 2005 Wieso machst du das mit einem iframe? Du baust die Seite doch eh mit PHP auf, also kannst du auch in PHP bestimmen, was da unten hin soll. :confused: Also jenachdem was du machst in deiner Seite, steht unten der entsprechende Text. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PieDie Geschrieben 8. Dezember 2005 Autor Teilen Geschrieben 8. Dezember 2005 Wieso machst du das mit einem iframe? Du baust die Seite doch eh mit PHP auf, also kannst du auch in PHP bestimmen, was da unten hin soll. :confused: Das wär geil... Ne, genaugenommen sind wir drei Köche an der PHP/SQL-Geschichte (Ich, der HTML Semi-Pro, ein PHP/SQL-SemiPro und einer, der mehr oder weniger vorgibt, wie das ganze auszusehn hat). Der wo vorgibt, wie's aussehen soll, kam auf die glorreiche Idee, einen IFrame inzubauen. ich hab schon überlegt, die (von mir geschriebene) Index.htm in 4 Frames zu splitten und damit den Iframe überflüssig zu machen, da dieser aber nicht das eigentliche Problem ist (er lässt sich ja so ansteuern, wie wir das möchten) erübrigt sich das. Das Problem ist wie gesagt, eine Refresh Mesage and den Hauptframe abzusetzen, während gleichzeitig auch der Iframe durch den Button was zu tun bekommt und eine SQL Anfrage auslöst... Ich hab schon wie in bekloppter verscuht, die Javascript sachen von ganz oben (Posts) in einem "hidden" Button mitzugeben, aber ohne Erfolg - der HTML-Parser übergeht das ganz geflissentlich oder spuckt eine Fehlermeldung aus : Objekt ist null, Nicht unterstütze Methode (oder so ähnlich) und dergleichen mehr... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tobias-digital Geschrieben 8. Dezember 2005 Teilen Geschrieben 8. Dezember 2005 Wie wär's denn hiermit: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title>user</title> </head> <body> <?php if ($_POST['submit']) { // SQL Insert Statement kommt hierhin echo '<p>neuer User wurde angelegt.</p>'; } ?> <table> <tr><th>ID</th><th>Username</th></tr> <tr><td>1</td><td>User1</td></tr> <tr><td>2</td><td>User2</td></tr> <tr><td>3</td><td>User3</td></tr> </table> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <p><input type="text" name="username" /> <input type="submit" name="submit" value="speichern" /></p> </form> </body> </html> [/PHP] Gruß, Tobias Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PieDie Geschrieben 8. Dezember 2005 Autor Teilen Geschrieben 8. Dezember 2005 HÄH? WAs löst in deinem Code einen Refresh im Hauptframe aus? Oder hast du einen anderen Ansatz verfolgt? Ich interpretiere deinen Code nämlich so: Der Aufbau der Tabelle mit den Usern, der Submit-Button und die "User wurde angelegt"-Meldung liegen im selben Frame? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PieDie Geschrieben 8. Dezember 2005 Autor Teilen Geschrieben 8. Dezember 2005 AAALSO: ich hab da was gefunden: onclick=\"top.frames['Hauptframe'].location.reload(true)\" Damit kann ich zwar den Hauptframe refreshen, löse aber nicht mehr das SQL_Ereignis aus. Nun ändert sich meine Fragestellung: Wie bringe ich diese Zeile Code so im Button unter, dass er nicht die Ausführug der SQL-Abfrage behindert (im Button selber geht wohl entweder SQL ODER Refresh, obwohl SQL garnicht in den button Anweisungen drin ist...)??? Ich habs mit <input type=\"hidden\" name=\"refresh\" value=\"Laber\" onclick=\"top.frames['Hauptframe'].location.reload(true)\"> versucht, aber das übergeht der Parser beim Draufklicken... Es wird nur die SQL-Abfrage gestartet. Der gesamte relevante Text sieht so aus: <input type=\"Submit\" name=\"user_anlegen\" value=\"Hinzufügen\" style=\"color: #E3B788; background-color: #969696; font-weight: bold\"> <input type=\"reset\" style=\"color: #E3B788; background-color: #969696; font-weight: bold\"> <input type=\"hidden\" name=\"user_anlegen\" value=\"1\"> <input type=\"hidden\" name=\"refresh\" value=\"Laber\" onclick=\"top.frames['Hauptframe'].location.reload(true)\"> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tobias-digital Geschrieben 8. Dezember 2005 Teilen Geschrieben 8. Dezember 2005 HÄH? WAs löst in deinem Code einen Refresh im Hauptframe aus? Oder hast du einen anderen Ansatz verfolgt? Ich interpretiere deinen Code nämlich so: Der Aufbau der Tabelle mit den Usern, der Submit-Button und die "User wurde angelegt"-Meldung liegen im selben Frame? Äh, ja? Wo ist das Problem? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PieDie Geschrieben 8. Dezember 2005 Autor Teilen Geschrieben 8. Dezember 2005 Das Problem ist, dass das nicht vorgesehen ist. Es MUSS ein IFrame sein... Nicht meine Entscheidung. Wie schon gesagt: es ist nicht von existentieller Bedeutung, aber dennoch nicht unwichtig, für das Projekt, das wir da am laufen haben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 8. Dezember 2005 Teilen Geschrieben 8. Dezember 2005 Es MUSS ein IFrame sein... Ein IFrame nur, weil da ein Text drinsteht und weil jemand denkt, es macht sich gut in einem IFrame? Sorry, ich sehe das wie Tobias. Für diese Funktionalität ist kein Frame notwendig und im Gegenteil, mit Frame wird es sogar schlechter, weil aufwendiger zu machen und ausserdem Javascript abhängig. Deine Seite ist eh schon dynamisch (php), es spricht also alles dafür, den Text auch da anzuzeigen und nicht nur wegen einer Ausgabe eine neue Seite (im IFrame) zu machen. Ansonsten kannst du im onclick-Event auch mehrere Anweisungen angeben, die mit Semikolon von einander getrennt werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PieDie Geschrieben 8. Dezember 2005 Autor Teilen Geschrieben 8. Dezember 2005 -.- Ich geb's auf... Wie gesagt, ist nicht meine Idee, nen Iframe zu nehemen, ich würds acuh lieber in einem machen, dann hätt ich garnicht dieses Thema eröffnen müssen. Aber de facto ist da ein Iframe, der genutzt wird. Zwei onclick-Events-> Geht nciht. Warum? WEiß ich nicht. Das ganze geht nämlich so, dass beim Klick auf den Knopf über einen "hidden" Button eine Variable gesetzt wird, die dann bei einem schleifendurchlauf den SQL-Schreibvorgang auslöst. Packe ich die Refresh Anweisung nun in ein OnClick-Event wird der SQL-Schreibvorgang nicht ausgelöst (ich weiß nicht warum). Lege ich die Refresh-Anweisung ebenfalls in so einen hidden-Button passiert aber nichts. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 9. Dezember 2005 Teilen Geschrieben 9. Dezember 2005 Zwei onclick-Events-> Geht nciht. Warum? WEiß ich nicht. Keine 2 Events... 2 Anweisungen im Event! Also: <... onclick="alert('Anweisung 1');alert('Anweisung 2')" /> Weiss nicht, ob nach dem zweiten auch ein Semikolon hinmuss... EDIT: Und zur Not machst du ne Javascript Funktion und rufst die auf. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PieDie Geschrieben 10. Dezember 2005 Autor Teilen Geschrieben 10. Dezember 2005 ICh sag doch, das geht nicht. Ich kann kein Ereignis in diesem Knopf hinterlegen, weil dann nciht die SQL-Anfrage gestartet wird. WArum das so ist, weiß ich nicht, die PHP sources sind schon ziemlich weit fortgeschritten udn ich blicke nicht durch alles davon durch; nur dass kein onclick-on den Button darf. Sobald ich ein onclick-Event im Button hab, gehts nicht mehr... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 12. Dezember 2005 Teilen Geschrieben 12. Dezember 2005 Sobald ich ein onclick-Event im Button hab, gehts nicht mehr... Meinst du deinen Submit-Button? Oder welchem Button willst du dieses Ereignis hinzufügen? Beim Submitbutton kann es durchaus sein, dass das onclick-Event den Submit verhindert. Da gibt es aber auch das Event onsubmit, da musst du dann nur True zurückliefern, damit der Submit auch wirklich ausgeführt wird (oder eben false, um ihn zu verhindern). Alternativ machst du einen "normalen" Button und im onclick führst du den Submit per Javascript aus: ... formname.submit(); ... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PieDie Geschrieben 13. Dezember 2005 Autor Teilen Geschrieben 13. Dezember 2005 Jupp, der Submit-Button bockt. Onsuibmit scheint uach nicht zu klappen, das hatte ich auch schonmal versucht (auf was für Ideen man kommt, wenn man nen HTMl-Edito nimmt, statt Frontpage )... Ich guck mal ob ich mit deiner Idee was machen kann, Danke. 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.