David Loos: Formulareingaben im Popup-Fenster an Opener schicken

Hallo,

ich habe da ein Problem, bei dem mir das Archiv leider nicht weiterhelfen konnte:

Ich möchte für eine Suche ein Formular in einem Pop-Up Fenster öffnen. Die auswertung der Suchergebnisse soll dann aber wieder im Hauptfenster, und dort innerhalb eines Frames angezeigt werden.
Leider weis ich nicht, wie man das Formular an einen Frame innerhalb des Hauptfensters submittet.

Gefunden habe ich bereits die Lösung zum versenden von Formularinhalten an andere Frames, was auch gut klappt:

document.searchJobs.target = "framename";

Vielen Dank für Eure Hilfe.

Gruß,

David

  1. Hallo David,

    Wenn du versuchst, dich durch diesen Code zu ackern, kannst du fündig werden; ich hoffe nicht, dass ich für das Verständnis essentielle Teile herausgeschnitten habe:

    <!--   Das aufgerufene Fenster enthält ein Eingabefeld, einen OK-Button und einen "Nicht ändern" Button
    /*
      Eingabefenster mit einem Input-Feld
      Aufruf: softinput?formularname.komponentenname
    */
    -->
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var aktiv = "";
    var variablenname = "";
    function ok(){
      opener.document.parameter.inputwert.value=window.document.softinput.eingabe.value;
      opener.document.parameter.variablenname.value = variablenname;
      opener.document.parameter.todo.value="ja";
      window.clearTimeout(aktiv);
      window.close();
    }
    function end(){
      window.clearTimeout(aktiv);
      window.close();
    }
    function immervorn() {
      self.focus();
      document.softinput.eingabe.focus();
      document.softinput.eingabe.select();
      aktiv = window.setTimeout("immervorn()",2000);
    }
    function init()
    {
      var tmp = this.location.search;
      var textfeld = tmp.substring(1,tmp.length);
      var command_string="window.document.softinput.eingabe.value=opener.document."+textfeld+".value";
      eval(command_string);
      var varinit = textfeld.indexOf(".") + 1;
      var varend = textfeld.length;
      variablenname = textfeld.substring(varinit,varend);
      document.softinput.eingabe.focus();
      document.softinput.eingabe.select();
      document.all.aus.innerHTML = variablenname;
      /*self.focus();
       aktiv = window.setTimeout("immervorn()",2000);*/
    }
    //-->
    </SCRIPT>
    <html>
    <head></head>
    <BODY onLoad=init()>
    <form method="POST" name="softinput">
      <table  cellspacing="0" cellpadding="0" border="0" align="center" valign="middle">
      <tr>
        <td colspan="4"> </td>
      </tr>
      <tr>
        <center>
        <td>Parameter:</td><td id=aus> </td><td>  </td>
        <td><input type=TEXT value="" name="eingabe"  style="width=40">  
         <input type="button" value="ok" onClick=ok()></td></center>
      </tr>
      <tr>
        <td colspan="4"> </td>
      </tr>
      <tr>
        <td colspan="4" align=center><input type="button" value="nicht ändern" onClick=end() style="width=200"></td>
      </tr>
    </table>
    </form>
    </body>
    </html>

    <!--
            Das aufrufende Fenster
    <html>
    <head>

    <script language="JavaScript">
     <!--
     function eingeben(arg){
        Eingabefenster = window.open("softinput.html?"+arg,"main",'top=250,left=530,resizable=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,toolbar=no,width=300,height=150');
        aktiv = window.setInterval("CheckOpen()",10);
     }
     function start_update(){
        window.location.href="funktionen.php?darstellung="+window.document.parameterleiste.darstellung.value+"&funktion=1&"+window.document.parameter.variablenname.value+"="+window.document.parameter.inputwert.value;
     }
     function CheckOpen()
     {
        if(Eingabefenster.closed == true)
        {
           if (window.document.parameter.todo.value == "ja") start_update();
           window.clearInterval(aktiv);
        }
     }
     //-->
     </script>
    </head>
    <body>

    <table>
      <tr>
       <form action=verarbeitung.php method="POST" name="parameterleiste">
        <td>
             <input type=hidden name=darstellung value="0">
             <input type=hidden name=nummer value="{NUMMER}">
                <input type="submit" value="Zurück">
        </td>
       </form>
      </tr>
    </table>
    <p>

    <table align=center cellspacing=0 border=1 cellpadding=0>
      <tr>
         <td>
    <form method="post" name="parameter">
    <input type="hidden" name="todo" value="">
    <input type="hidden" name="inputwert" value="0">
    <input type="hidden" name="variablenname" value="">
    <tr><td>Parameter:</td></tr>
    <tr><input type="button" value="0" name="t11" onClick=eingeben('parameter.t11')></td>
    <td></tr></table>
    </body>
    </html>

    1. Hallo,

      ersteinmal vielen Dank für Dein Skript.
      Leider muß ich zugeben, daß es mir nicht viel geholfen hat.
      Ich würde einfach nur gerne beim Versenden im Pop-Up Fenster angeben,
      das die Seite unter "action" im ursprünglichen Fenster angezeigt werden soll. Das ist alles.....

      Dave

      1. action?

        wenn dann als target =

        aber dann öffnet er das ja im popup. Is ja net gerade der Sinn ;)

        tOM

  2. Moin!

    ich habe da ein Problem, bei dem mir das Archiv leider nicht weiterhelfen konnte:

    Ich möchte für eine Suche ein Formular in einem Pop-Up Fenster öffnen. Die auswertung der Suchergebnisse soll dann aber wieder im Hauptfenster, und dort innerhalb eines Frames angezeigt werden.

    <form target="FRAMENAME" ...>

    Wenn du im Hauptfenster ein Frameset hast, ist das so gar kein Problem. Die Frage ist dann eher: Wie kriegst du das Popup wieder zu? :)

    - Sven Rautenberg