Andreas: Problem: Formular im Popup-Fenster

Moin,

ich habe eine html-Datei, die ein Popup-Fenster öffnet, in dem ein Formular enthalten ist. Wenn ich dieses Formular absende, soll sich das Popup-Fenster schließen und die Formularantwort soll im Hauptfenster stattfinden. Das Hauptfenster ist Teil eines Framesets. Also schrieb ich:

<form name='Teilnehmer' action='$PHP_SELF' method='post' target='opener.frame[1]'>

Wenn ich das Formular nun abschicke, schließt sich zwar artig das Popup-Fenster. Anstatt dass die Antwort aber im Hauptfenster ausgegeben wird, wird ein neues Fenster geöffnet, das die Antwort ausgibt. Mit dem Frameset scheint es nicht in Zusammenhang zu stehen. Wenn ich nur

target='opener'

schreibe und die Datei ausserhalb eines Framesets öffne, passiert das gleiche.

Für jede Hilfe bin ich dankbar.

Andreas

  1. Hallo,

    gib dem entsprechenden Frame einen Namen, z.B.
    <frame src="blabla.htm" name="content" ....>
    und dann
    <form name='Teilnehmer' action='$PHP_SELF' method='post' target='content'>.

    Gruß Markus

    1. Ich bedanke mich sehr herzlich bei dir. Ich zerschlag mir den Kopf wie das denn mit opener und JavaScript gehen müsste, dabei muss man nur den Framenamen eingeben.
      Vielen Dank!

      Hallo,

      gib dem entsprechenden Frame einen Namen, z.B.
      <frame src="blabla.htm" name="content" ....>
      und dann
      <form name='Teilnehmer' action='$PHP_SELF' method='post' target='content'>.

      Gruß Markus

  2. Moin,

    Das Hauptfenster ist Teil eines Framesets. Also schrieb ich:

    <form name='Teilnehmer' action='$PHP_SELF' method='post' target='opener.frame[1]'>

    Du verwechselst HTML-Fensternamen mit Javascript-Fensterobjekten.

    Mit "target" werden die HTML-Fensternamen angesprochen. Das sind die Bezeichnungen, die bei Frames und IFrames mit dem name-Attribut definiert werden, und bei Popup-Fenstern ist es der zweite Parameter von window.open.

    Als Standard-HTML-Fensternamen gibt es zusätzlich zu denen, die du selbst definiert hast, noch "_blank", "_self", "_parent" und "_top", welche die bekannten Funktionen haben.

    Unter Javascript gibt es Fensterobjekte, welche aber nicht alle auch einen HTML-Fensternamen besitzen. Das erste Browserfenster beispielsweise hat keinen HTML-Namen, aber es kann von neuen Fenstern aus per Javascript mit "opener" angesprochen werden. Nur für diese Konstellation gibt es also keine Chance, ein Formular aus einem Popup in das gesamte Opener-Fenster zu schicken, weil der HTML-Name fehlt. Wenn im Opener-Fenster ein Frameset steht, dann aber kann man in jedes der einzelnen Framefenster auch aus dem Popup heraus ein Target definieren, weil die Fenster ja alle auch HTML-Namen haben.

    - Sven Rautenberg