Zum Inhalt springen

Button soll einen Frame aktualisieren


PieDie

Empfohlene Beiträge

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 :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

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>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mann, das sind ja 3 Wünsche auf einmal :D

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:)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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)\">

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

-.-

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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();

...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...