Matthias Nagel: popup durch form klicken öffnen

Hab ein Problem mein Popup-Script durch ein Formular zu starten:

Mein Popup skript:

/////////////

<script language=JavaScript type=text/JavaScript>
function openWindow(pUrl,windowName,width,height,scroll)
{
        x = (640 - width)/2, y = (480 - height)/2;
        if (screen)
        {
                y = (screen.availHeight - height)/2;
                x = (screen.availWidth - width)/2;
        }
        if (screen.availWidth > 1800)
        {
                x = ((screen.availWidth/2) - width)/2;
        }
        if (scroll==null)
        {
            scroll='scrollbars=no';
        }
        else
        {
            scroll='scrollbars=yes';
        }
        window.open(pUrl,windowName,'width='+width+',height='+height+',screenX='+x+',screenY='+y+',top='+y+',left='+x+','+scroll);
}
</script> ";

und mein Aufruf:

<form name=pdfbasket onreset="return ResetCheck(''.$language.'')" aktion="return openWindow("'.$env_link.'/live/rs/rsprintbasket/rsprintbasketform/makepdf.php","","740","520","no")">

Danke für die Hilfe
Matthias

  1. Moin

    Hab ein Problem mein Popup-Script durch ein Formular zu starten:

    welches Problem genau?

    <form ... aktion=...>

    ein aktion-Attribut existiert nicht, wohl aber action.

    Gruß
    rfb

    --
    Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
    (Galileo Galilei)
    1. Moin

      Hab ein Problem mein Popup-Script durch ein Formular zu starten:
      welches Problem genau?

      <form ... aktion=...>
      ein aktion-Attribut existiert nicht, wohl aber action.

      Gruß
      rfb

      Autsch loooooool ich Kacknoob danke !!!

      1. Moin

        Hab ein Problem mein Popup-Script durch ein Formular zu starten:
        welches Problem genau?

        <form ... aktion=...>
        ein aktion-Attribut existiert nicht, wohl aber action.

        Gruß
        rfb

        Autsch loooooool ich Kacknoob danke !!!

        Jetzt hab ich das Problem, das meine Variablen aus dem Form nicht übergeben werden, da mein Formular gar nicht abgeschickt wird.

        echo '<form name=pdfbasket onreset="return ResetCheck(''.$language.'')" onSubmit="'.$_SERVER['PHP_SELF'].'" action="';
          echo "javascript:openWindow('".$env_link."/live/rs/rsprintbasket/rsprintbasketform/makepdf.php','','740','520','no')";

        wie krieg ich das hin, das ich im Browserfenster dann die Variablen aus dem Formular hab.

        Grüsse
        Matthias

        1. Moin

          entwirre doch erst einmal diesen Code!

          Tipp: übergeben wird nur etwas, wenn du bei action ein Ziel angibst. Du nutzt action aber um ein PopUp-Fenster zu öffnen.
          Wenn es denn sein muss dann öffne das PopUp über onsubmit und mach mit action etwas sinnvolleres!

          Gruß
          rfb

          --
          Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
          (Galileo Galilei)
          1. Moin

            entwirre doch erst einmal diesen Code!

            Tipp: übergeben wird nur etwas, wenn du bei action ein Ziel angibst. Du nutzt action aber um ein PopUp-Fenster zu öffnen.
            Wenn es denn sein muss dann öffne das PopUp über onsubmit und mach mit action etwas sinnvolleres!

            Gruß
            rfb

            Aber ich möchte doch nur dass meine Formulardaten dann in dem Browserfenster zu haben sind, mehr möcht ich doch gar nicht. Ich will halt nicht im derzeitigen Fenster bleiben sondern der User soll submit klicken und dann kann ich in einem Broswerfenster mit einem PHP Skript die Formulardaten bearbeiten.

            Grüsse
            Matthias

            1. hi,

              Tipp: übergeben wird nur etwas, wenn du bei action ein Ziel angibst. Du nutzt action aber um ein PopUp-Fenster zu öffnen.
              Wenn es denn sein muss dann öffne das PopUp über onsubmit und mach mit action etwas sinnvolleres!

              Aber ich möchte doch nur [...]

              Ja, du wurdest verstanden.
              Und du hast einen Tipp bekommen.

              Wenn du diesen Tipp nicht verstanden hast - dann erkläre uns, was du daran nicht verstanden hast.
              Dass du uns wiederholt erklärst, was du vorhast, ist unnötig, und bringt uns auch nicht weiter.

              gruß,
              wahsaga

              --
              /voodoo.css:
              #GeorgeWBush { position:absolute; bottom:-6ft; }
              1. Ich verstehe nicht warum ein:

                <form name=pdfbasket method="post" action="live/rs/rsprintbasket/rsprintbasketform/makepdf.php" onSubmit="window.open('live/rs/rsprintbasket/rsprintbasketform/makepdf.php','MyConsole','width=640','height=480','menubar=no','scrollbars=no','status=no')"; target="MyConsole">

                nicht funktioniert

                1. hi,

                  Ich verstehe nicht warum ein: [...] nicht funktioniert

                  "Funktioniert nicht" ist keine brauchbare Problembeschreibung.

                  Davon abgesehen ist es aber vielleicht keine gute Idee, die Ressource zwei mal anzufordern - erst mal ohne, und dann noch mal mit POST-Daten.

                  gruß,
                  wahsaga

                  --
                  /voodoo.css:
                  #GeorgeWBush { position:absolute; bottom:-6ft; }
                  1. ein action="window.open ...." alleine öffnet mir das Fenster mit dem PHP Skript, allerdings ohne die Post-Variablen. Ein onSubmit liefert das selbe Ergebnis. Ich kann den Bezug zwischen den zu versendenen Post-Variablen und dem aktiven Window in meinem Popup nicht herstellen.

                    So besser ;-)

                    Gruss
                    Matthias

                    1. hi,

                      ein action="window.open ...." alleine öffnet mir das Fenster mit dem PHP Skript, allerdings ohne die Post-Variablen.

                      Eben, deshalb wollen wir _das_ nicht machen.

                      Ein onSubmit liefert das selbe Ergebnis.

                      Öffne onsubmit dein Popup - aber _ohne_ darin bereits die Zielseite aufzurufen. "about:blank" oder ggf. auch einfach "" als Adresse.

                      Ich kann den Bezug zwischen den zu versendenen Post-Variablen und dem aktiven Window in meinem Popup nicht herstellen.

                      Das macht das target-Attribut des Formulars schon für dich.

                      gruß,
                      wahsaga

                      --
                      /voodoo.css:
                      #GeorgeWBush { position:absolute; bottom:-6ft; }
                      1. hi,

                        ein action="window.open ...." alleine öffnet mir das Fenster mit dem PHP Skript, allerdings ohne die Post-Variablen.

                        Eben, deshalb wollen wir _das_ nicht machen.

                        Ein onSubmit liefert das selbe Ergebnis.

                        Öffne onsubmit dein Popup - aber _ohne_ darin bereits die Zielseite aufzurufen. "about:blank" oder ggf. auch einfach "" als Adresse.

                        Ich kann den Bezug zwischen den zu versendenen Post-Variablen und dem aktiven Window in meinem Popup nicht herstellen.

                        Das macht das target-Attribut des Formulars schon für dich.

                        gruß,
                        wahsaga

                        Ich glaub jetzt hab ich´s langsam verstanden, werds morgen nochmal testen, danke iom Voraus.

                        Grüsse
                        Matthias

                        1. hi,

                          ein action="window.open ...." alleine öffnet mir das Fenster mit dem PHP Skript, allerdings ohne die Post-Variablen.

                          Eben, deshalb wollen wir _das_ nicht machen.

                          Ein onSubmit liefert das selbe Ergebnis.

                          Öffne onsubmit dein Popup - aber _ohne_ darin bereits die Zielseite aufzurufen. "about:blank" oder ggf. auch einfach "" als Adresse.

                          Ich kann den Bezug zwischen den zu versendenen Post-Variablen und dem aktiven Window in meinem Popup nicht herstellen.

                          Das macht das target-Attribut des Formulars schon für dich.

                          gruß,
                          wahsaga

                          Hab mal ein Sample gemacht:
                          Die Seite mit dem Formular:

                          <form id="form1" name="form1" method="post" action="do.php"
                          onsubmit="window.open(, "testbox", "width=200,height=200,left=100,top=200"); return false" target="testbox">

                          <input type="text" name="textfield">

                          <input type="submit" name="Submit" value="Senden">

                          </form>

                          Die Seite mit dem php:

                          <?php

                          echo $_POST["textfield"];

                          ?>

                          Ein neues Fenster geht auf, aber leider kein Popup, sondern ein nromales Browserfenster.

                          Grüsse
                          Matthias

                          Ich glaub jetzt hab ich´s langsam verstanden, werds morgen nochmal testen, danke iom Voraus.

                          Grüsse
                          Matthias

                          1. Moin

                            das

                            onsubmit="window.open(, "testbox", "width=200,height=200,left=100,top=200"); return false"

                            ist auch einfach falsch. Wenn du Anführungszeichen ineinander verschachtelst musst du entweder maskieren oder doppelte und einfache verwenden.

                            Gruß
                            rfb

                            --
                            Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
                            (Galileo Galilei)
                            1. Moin

                              das

                              onsubmit="window.open(, "testbox", "width=200,height=200,left=100,top=200"); return false"
                              ist auch einfach falsch. Wenn du Anführungszeichen ineinander verschachtelst musst du entweder maskieren oder doppelte und einfache verwenden.

                              Gruß
                              rfb

                              aber so müsste es doch gehen oder:

                              onSubmit="window.open("", "testbox", width="200",height="200",left="100",top="200");" target="testbox">

                              Grüsse
                              Matthias

                              1. Moin

                                aber so müsste es doch gehen oder:

                                onSubmit="window.open("", "testbox", width="200",height="200",left="100",top="200");" target="testbox">

                                NEIN!

                                Gruß
                                rfb

                                --
                                Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
                                (Galileo Galilei)
                                1. Moin

                                  aber so müsste es doch gehen oder:

                                  onSubmit="window.open("", "testbox", width="200",height="200",left="100",top="200");" target="testbox">
                                  NEIN!

                                  Gruß
                                  rfb

                                  so steht es unter http://www.selfhtml.net/javascript/objekte/window.htm#open

                                  window.open("datei.htm","Fenster2","width=310,height=400,left=320,top=0");

                                  Gruß
                                  Matthias

                                  1. Moin

                                    aber so müsste es doch gehen oder:

                                    onSubmit="window.open("", "testbox", width="200",height="200",left="100",top="200");" target="testbox">
                                    NEIN!

                                    Gruß
                                    rfb

                                    so steht es unter http://www.selfhtml.net/javascript/objekte/window.htm#open

                                    window.open("datei.htm","Fenster2","width=310,height=400,left=320,top=0");

                                    Gruß
                                    Matthias

                                    verdammt so geht es:

                                    <form id="form1" name="form1" method="post" action="do.php"
                                    onSubmit=window.open("","testbox","width=200,height=200,left=100,top=200"); target="testbox">

                                    Danke für eure Hilfe !

                                    Grüsse
                                    Matthias

                                    1. PS: wer diesen Beitrag verfolgt hat, hier der fertige Code. So wird ein super Browserfenster zentriert in jedem Browser geöffnet:

                                      <html xmlns="http://www.w3.org/1999/xhtml">
                                      <head>
                                      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                                      <title>Unbenanntes Dokument</title>
                                      <script language="JavaScript" type="text/JavaScript">
                                      function openWindow(pUrl,windowName,width,height,scroll)
                                      {
                                              x = (640 - width)/2, y = (480 - height)/2;
                                              if (screen)
                                              {
                                                      y = (screen.availHeight - height)/2;
                                                      x = (screen.availWidth - width)/2;
                                              }
                                              if (screen.availWidth > 1800)
                                              {
                                                      x = ((screen.availWidth/2) - width)/2;
                                              }
                                              if (scroll==null)
                                              {
                                                  scroll='scrollbars=no';
                                              }
                                              else
                                              {
                                                  scroll='scrollbars=yes';
                                              }
                                              window.open(pUrl,windowName,'width='+width+',height='+height+',screenX='+x+',screenY='+y+',top='+y+',left='+x+','+scroll);
                                      }
                                      </script>

                                      </head>

                                      <body>
                                      <form id="form1" name="form1" method="post" action="do.php"
                                       onSubmit=openWindow("","testbox","300","200","no"); target="testbox">

                                      <input type="text" name="textfield">

                                      <input type="submit" name="Submit" value="Senden">

                                      </form>
                                      </body>
                                      </html>

                                      Grüsse
                                      Matthias

                                      1. Hallo,

                                        PS: wer diesen Beitrag verfolgt hat, hier der fertige Code. So wird ein super Browserfenster zentriert in jedem Browser geöffnet:

                                        nö, dazu muss zunächst Javascript zugelassen sein.

                                        <form id="form1" name="form1" method="post" action="do.php"
                                        onSubmit=openWindow("","testbox","300","200","no"); target="testbox">

                                        Das ist allerdings grob fehlerhaft. Die Anführungszeichen um Attributwerte dürfen (in HTML!) weggelassen werden, wenn der Wert nur aus Zeichen besteht, die auch in Namen zulässig sind. Aber nicht, wenn er seinerseits Klammern, Anführungszeichen, Kommas usw. enthält. In XHTML dürfen die Anführungszeichen grundsätzlich nicht weggelassen werden.

                                        Tipp: Es gibt zwei Sorten Anführungszeichen, und im Gegensatz zu PHP sind sie in HTML und Javascript beliebig wählbar - solange sie in korrekter Paarung auftreten.

                                        So long,
                                         Martin

                                        --
                                        Lache, und die Welt wird mit dir lachen.
                                        Schnarche, und du schläfst allein.
                                      2. Könnte ich jetzt eigetnlich eine neue Seite öffnen target="_blank" und das Fenster nach dem Öffnen des neuen Fensters dann automatisch schließen.

                                        Grüsse
                                        Matthias