[Variablen] Formularvariablen an ein popup geben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Variablen] Formularvariablen an ein popup geben

    Hallo Gemeine,
    ich möcht Formulareingaben an ein Popup übergeben, ohne den target-Befehl aus dem Form-Tag zu nutzen.

    Ich möchte ein Fenster ohne Status und navigation in einer bestimmten größe.

    Wenn ich das Fenster per JavaScript aufrufe, werden die Variablen nicht übergeben.


    Danke für eure Hilfe

    Tom

  • #2
    dann muss target-angabe (submit auch) über js erfolgen, afaik.

    Kommentar


    • #3
      Re: [Variablen] Formularvariablen an ein popup geben

      Original geschrieben von blade230

      Wenn ich das Fenster per JavaScript aufrufe, werden die Variablen nicht übergeben.
      wetten, doch ?

      du kannst per JS:

      - Form-Var auslesen und beim Öffnen der URL als Parameter dranhängen, oder
      - vom Popup aus direkt auf das Hauptfenster zugreifen und auslesen

      btw: *verschieb*

      Kommentar


      • #4
        OK.

        Ich dachte ich könnte mir die Arbeit ersparen und mit php direkt per
        $var = $_POST['formvar'];
        draufzugreifen.

        Tom

        Kommentar


        • #5
          ein Popup ist nun mal nur über target oder JS zu öffnen, da du aber was gegen target hast, bleibt nur der JS-Weg.

          Kommentar


          • #6
            Ich habs gelöst.

            Für diejenigen, die auch mal vor dem Problem stehen sollten,

            hier die Lösung:

            function newUser()
            {
            var w = 240; //Breite des neuen Fensters
            var h = 180; //Höhe des neuen Fensters
            var nw = screen.availWidth; //aktuelle Bildschirmweite
            var nh = screen.availHeight; //aktuelle Bilschirmhöhe
            var x = ((nw - w) / 2); //berechnung für Center
            var y = ((nh - h) /2); //berechnung für Center
            var i = document.form[0].length; //auslesen aller elemente im form
            var s="";

            for(var x = 0; x<i; x++)
            {
            if(x == 0)
            {
            s = s + document.form[0].elements[x].name + "=" + document.form[0].elements[x].value +"";
            }
            else
            {
            s = s + "&" + document.form[0].elements[x].name + "=" + document.form[0].elements[x].value +"";
            }

            }
            window.open('insert_user.php?'+s, 'newUser', 'toolbar=no,location=no,directories=no,statusbar=no,menubar=no,scrollbars=no,scrolls=no,resizable=no ,width=' + w +',height=' + h + ',left=' + x + ',top=' + y +'');
            }
            //-->
            </script

            In PHP ganz normal mit $_GET['formelement'] drauf zu greifen.

            Danke für die Hilfe.

            Tom
            Zuletzt geändert von blade230; 01.03.2005, 21:27.

            Kommentar


            • #7
              Hi,

              Danke für das Script, genau sowas such ich um für ein in PHP geschriebenes Emailscript eine Vorschau der eingetragenen Daten in einem neuen Fenster zu erhalten, nur leider reagiert bei mir der Browser kein Stück wenn ich auf den Vorschau Button klicke.... ich hab mal den essentiellen Teil des Scripts mit gepostet, falls ihr alles benötigt, dann bitte bescheid sagen...

              Vielen Dank
              Presssack


              PHP-Code:
              //Funktion form 
               
              function form($to="",$cc="",$bcc="",$subject="",$message="") {
                     echo 
              "<form action=\"$PHP_SELF\" method=\"POST\" enctype=\"multipart/form-data\" name=\"emailform\" lang=\"de\"> ";
                     echo 
              "<table style=\"margin-top:30px;\">";
                    
                    
              $filename 'absender.txt';
                                
                        
              $fp fopen($filename'r');
                        
              fgets($fp,1024) or die('Die Datei $filename existiert nicht');
                        
              fclose($fp);
                        
                        
              $absender_array file($filename);
                      echo 
              "<tr><td>Absender:</td><td><select name=\"from\" class=\"field\" >
                            <option value=\"\">-- Bitte ausw&auml;hlen --</option>"
              ;
                            foreach(
              $absender_array as $zeile
                                    {
                                    
              $zeile trim($zeile);
                                    echo 
              "<option value=\"$zeile\">$zeile@domain.de</option>";
                                    }
              echo <<<FORM
              </select></td></tr>
                <tr><td>Empfänger:</td><td><input type="text" size="45" name="to" value="
              $to" class="field"></td></tr>
                <tr><td>Kopie an:</td><td><input type="text" size="45" name="cc" value="
              $cc" class="field"></td></tr>
                <tr><td>Blindkopie an:</td><td><input type="text" size="45" name="bcc" value="
              $bcc" class="field"></td></tr>
                <tr><td colspan="2" style="height:20px;"></td></tr>
                <tr><td>Betreff:</td><td><input type="text" size="90%" name="subject" value="
              $subject" class="field"></td></tr>
                <tr><td colspan="2" style="height:10px;"></td></tr>
                <tr><td valign="top">Nachricht:</td>
                    <td><textarea type="text" size="90%" name="message" class="field" cols="68" rows="10">
              $message</textarea>
                    </td></tr>
                <tr><td colspan="2" style="text-align:right;"><input type="button" name="preview" value="Vorschau" class="field" 
                  onMouseOver="this.value='Noch nicht Funktionsf&auml;hig';" onClick="Preview()"></td></tr>
                <tr><td></td><td><input type="submit" size="90%" name="senden" class="field" value="Senden">
                <input type="reset" size="90%" name="delete" class="field" value="Alles L&ouml;schen"></td></tr>  
                </table></form>
               
              FORM;
                        }; 
                        
              //Schliessen der function 'form'

              //Das hier steht im <head> TAG </head>

              <script language="JavaScript" type="text/JavaScript">
              <!--
              function 
              Preview()
              {
              var 
              800//Breite des neuen Fensters
              var 400//Höhe des neuen Fensters
              var nw screen.availWidth//aktuelle Bildschirmweite
              var nh screen.availHeight//aktuelle Bilschirmhöhe
              var = ((nw w) / 2); //berechnung für Center
              var = ((nh h) /2); //berechnung für Center
              var document.form[0].length//auslesen aller elemente im form
              var s="";

              for(var 
              0x<ix++)
              {
              if(
              == 0)
              {
              document.form[0].elements[x].name "=" document.form[0].elements[x].value +"";
              }
              else
              {
              "&" document.form[0].elements[x].name "=" document.form[0].elements[x].value +"";
              }

              }
              window.open('preview.php?'+s'Preview''toolbar=no,location=no,directories=no,statusbar=no,menubar=no,scrollbars=no,scrolls=no,resizable=no
              ,width=' 
              +',height=' ',left=' ',top=' +'');
              }
              //-->
              </script
              Zusatz: Die Datei "preview.php" existiert im selben Verzeichniss
              Zuletzt geändert von Presssack; 13.03.2005, 21:46.

              Kommentar


              • #8
                Nach einer dreiviertel Stunde Selfhtml Studium im Javascript-Bereich, habe ich die Fehler gefunden (hatte bis gerade eben bei Javascript nur mit Event-Handler zu tun gehabt.)

                Also 1. bei

                PHP-Code:
                window.open('preview.php?'+s'Preview',  'toolbar=no,location=no,directories=no,statusbar=no,menubar=no,scrollbars=no,scrolls=no,resizable=no 
                ist mir durchs kopieren ein Zeilenumbruch reingekommen, den der Browser nicht Verstanden hat...

                und 2.

                PHP-Code:
                var document.form[0].length//auslesen aller elemente im form
                var s="";

                for(var 
                0x<ix++)
                {
                if(
                == 0)
                {
                document.form[0].elements[x].name "=" document.form[0].elements[x].value +"";
                }
                else
                {
                "&" document.form[0].elements[x].name "=" document.form[0].elements[x].value +"";

                musste es
                PHP-Code:
                document.forms[0].length 
                heissen, da entweder mit forms[0] das 1. Formular gemeint ist oder man gibt nur den Formularnamen ein, genauso auch bei den if-Abfragen, bei denen musste es auch jeweils "forms" heissen.

                Ansonsten Funktioniert das wunderprächtig.

                Nochmals vielen Dank und gut Nacht
                Presssack

                Kommentar

                Lädt...
                X