Ankündigung

Einklappen
Keine Ankündigung bisher.

Variable aus Formular an iframe

Einklappen

Neue Werbung 2019

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

  • Variable aus Formular an iframe

    Hallo,

    ich sitze schon seit einiger Zeit vor dem Problem, dass ich eine Variable nicht in einen iframe bekomme.

    Ausgangssituation:
    Ich lade nach einer Auswahl Daten aus einer MySQL DB durch Selektion der ID. Die Form wird geladen und die Daten aus der DB übertragen und in die Felder gefüllt (funktioniert auch einwandfrei). In dieser Seite befindet sich nun ein iframe, in dem ein Uploadformular geladen wird.

    Beim Seitenaufruf wird die Variable
    PHP-Code:
    $_POST["auswahl"
    mit auf die Form übertragen und kann dort auch ohne Probleme angezeigt werden.

    Leider kann ich diese Variable aber nicht in meinem iframe finden. Dort kommt sie nicht an ... obwohl der iframe gleichzeitig geladen wird und sich auch in dem Bereich der Form tag <form></form> befindet.

    Mache ich hier einen Gedankenfehler, so dass das gar nicht geht oder gibt es dafür eine total simple Lösung, die sich mir verborgen hält?

    Vielen Dank für Lösungsvorschläge ...

  • #2
    Variable an Iframe übergeben - PHP @ tutorials.de: Forum & Hilfe

    Wolf29

    P.S. Bei Google gibt es eine Vielzahl an Antworten zu dem Thema!
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Dieses Tutorial habe ich schon gestern gefunden ... und habe Google gequält bis der Arzt kam ... aber keine Lösung gefunden, die ich "verstanden" hätte bzw. in der ich mein Problem wiedergefunden habe.

      Trotzdem zunächst Danke für Deine schnelle Antwort ...

      Kommentar


      • #4
        Dann zeig doch mal deinen bisherigen Ansatz. Sonst können wir schlecht weiterhelfen und nur raten!

        Wolf29
        while (!asleep()) sheep++;

        Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

        Kommentar


        • #5
          Hier der Code der aufgerufenen Seite zur Anzeige der Daten aus der MySQL DB:

          PHP-Code:
          <?PHP
          $start 
          time()+(double)microtime();
          // Verbindung mit der Datenbank herstellen
          include('include/dbconnect.inc.php');
          include(
          'include/safe_mysql_query.php');
          //
          // Datentabelle dem SQl übergeben
          $sqlaendern "select * from tbl_XXX where";
          $sqlaendern .= " XXX_ID = " $_POST["auswahl"];
          $res_aendern safe_mysql_query($sqlaendern)or die("Übergabe SQL String zum Speichern: " .mysql_error());
          // Anzahl der Datensätze soll ermittelt und ausgegeben werden
          $dsatz mysql_fetch_assoc($res_aendern);
          // ab hier erfolgt die Darstellung
          echo "<form action='XXX' method='post' name='form1' target='Hauptframe'>";

          ...
          anschließend werden die Felder mit dem Inhalt gefüllt.

          Die Übergabe der ID für den SQL String erfolgt über

          PHP-Code:
          $_POST["auswahl"
          und könnte z.B. '92' sein.

          So, jetzt wird der iframe am Ende der Seite direkt mitgeladen ...

          [PHP]
          <iframe name="uploder" src="upload.php" align="center" frameborder="0" height="600" width="1000"></iframe>

          In dieses iframe lädt sich dann die upload.php

          PHP-Code:
          <?php
          // hier sind die mySQL Daten einzufüllen
          @mysql_connect("XXX""XXX""XXX");
          @
          mysql_select_db("XXX");

          $mutternummer $_POST["auswahl"];

          if(
          $_GET['action'] == "upload") {

          // Auf Fehler überprüfen
          if ($_FILES['datei']['error'] == UPLOAD_ERR_NO_FILE || $_FILES['datei']['error'] == UPLOAD_ERR_PARTIAL) {
          // die Datei wurde nicht oder nur teilweise hochgeladen
          die("<b><center><br /><br /><br /><br /><br />Die Datei wurde nicht korrekt hochgeladen. Bitte versuchen Sie es erneut.<b><br><img src='image/rotes_x.png' width='80' height='80' /></center>");

          } elseif (
          $_FILES['datei']['error'] == UPLOAD_ERR_FORM_SIZE || $_FILES['datei']['error'] == UPLOAD_ERR_INI_SIZE) {
          // die Datei ist zu groß
          die("<b><center><br /><br /><br /><br /><br /><br />Die hochgeladene Datei ist zu groß.</b></center>");

          } else {
          // die Datei wurde korrekt hochgeladen

          // hier sind die mySQL Daten einzufüllen
          @mysql_connect("XXX""XXX""XXX");
          @
          mysql_select_db("XXX");

          // Temporäre Datei schreiben (ist wegen der Lese-Rechte nötig)
          // und auf die temp-Datei Lese Rechte vergeben
          move_uploaded_file($_FILES['datei']['tmp_name'], "./tempfile.tmp");
          chmod("./tempfile.tmp"0644);

          // Wertübergabe
          // Daten aus Temp-Datei einlesen
          $zeiger fopen("./tempfile.tmp""rb");
          $size $_FILES['datei']['size'];
          // den Dateiinhalt in $data speichern
          $data fread($zeiger$size);
          fclose($zeiger);

          // Temporäre Datei löschen
          @unlink("./tempfile.tmp");

          //
          // Damit die Datei jetzt in die mySQL Tabelle kann müssen wir sie vorher kodieren:
          $data base64_encode($data);

          // Leerzeichen im Dateinamen werden mit einem Unterstrich ersetzt
          $dateiname str_replace(" ""_"$_FILES['datei']['name']);

          // Und ab in die mySQL Tabelle...
          $sql "INSERT INTO tbl_XXX_dateien VALUES('', '" .$mutternummer"', '".$dateiname."', '".$_FILES['datei']['type']."', '".$data."', '".$size."')";
          @
          mysql_query($sql);
          echo 
          "<center>";
          echo 
          "<br /><br /><br /><br /><br />";
          echo 
          "<b>Der Datei-Upload wurde erfolgreich durchgeführt.</b>";
          echo 
          "<br><br>";
          echo 
          "<img src='image/Paste.png' width='150' height='150' alt='' /><br /><br />";
          echo 
          "<a href='upload.php' target='_self'><img src='button/auswahl_laden.png' width='200' height='40' alt='Klicken Sie hier, um weitere Dateien zu uploaden.' /></a> ";
          echo 
          "</center>";
          exit;
          }

          } else {
          echo 
          "<center>";
          echo 
          "<br /><br /><br /><br /><br />";
          echo 
          "<form method=\"post\" action=\"" $PHP_SELF "?action=upload\" enctype=\"multipart/form-data\">";
          echo 
          "<input type=\"hidden\" name=\"MAX_FILES_SIZE\" value=\"2097152\">";
          echo 
          "<input type=\"file\" name=\"datei\" maxlength=\"2097152\" size=\"80\">&nbsp;&nbsp;&nbsp;";
          echo 
          "<input type=\"submit\" name=\"submit\" value=\"Uploaden\">";
          echo 
          "<br /><br /><br />";
          echo 
          "<img src='image/Download.png' width='150' height='150' alt='' />";
          echo 
          "</center>";
          echo 
          "<br /><br />";
          echo 
          "Nummer "$mutternummer ."<br /><br />";
          echo 
          "Bitte laden Sie hier die zugehörigen Dokumente in die Datenbank. Achten Sie bitte darauf, dass keine Leerzeichen im Dateinamen enthalten sind.<br />Gestalten Sie den Dateinamen bitte aussagekräftig.";
          echo 
          "</form>";
          }

          ?>
          <html>
          <head>
          <link rel="stylesheet" href="css/XXX.css" type="text/css" />
          </head>
          <body>

          </body>
          </html>
          Der iframe soll deshalb verwendet werden, damit mehrere Uploads durchgeführt werden können, ohne dass die Form refreshed werden muss (in der sich der iframe befindet).
          Funktioniert auch alles einwandfrei und so wie es soll ... nur die Variable

          PHP-Code:
          $mutternummer 
          die ich oben zuweise aus

          PHP-Code:
          $mutternummer $_POST["auswahl"
          bleibt leer ...

          (Ich weiß, ich könnte auch mit
          PHP-Code:
          $_POST["auswahl"
          weiterarbeiten ... war aber ein "Rettungsversuch" meinerseits ...

          Ich hoffe, dass es bei der Lösungsfindung weiter hilft.

          Vielen Dank schon mal ...

          Kommentar


          • #6
            Ohne deinen Quellcode jetzt ganz genau angeschaut zu haben, warum hängst Du nicht einfach einen GET-Parameter an das iframe? z.B. so:

            PHP-Code:
            <iframe name="uploder" src="upload.php?variable=<?php echo $meinevariable ;?>" align="center" frameborder="0" height="600" width="1000"></iframe>
            Wenn das nicht die Lösung ist, lese ich mir gleich deinen kompletten Quellcode durch!

            Wolf29
            while (!asleep()) sheep++;

            Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

            Kommentar


            • #7
              ... die Variable rufe ich dann mit $variable im Code auf? (hat dann den Inhalt der $_POST["auswahl"] ???

              Habe ich das so richtig interpretiert?

              Kommentar


              • #8
                Ich habe nun folgenden Code:

                PHP-Code:
                <iframe name="uploder" src="upload.php?mutternummer=<?php echo $_POST["auswahl"] ;?>" align="center" frameborder="0" height="600" width="1000"></iframe>
                eingefügt ... die Variable

                PHP-Code:
                $mutternummer 
                bleibt leer

                Kommentar


                • #9
                  dann versuchs mal mit $_GET["mutternummer"]....

                  Kommentar


                  • #10
                    Die Variable im iframe kannst Du dann mit $_GET["meineVariable"] aufrufen. Als Parameter an das iframe übergibts du wie im vorherigen Beispiel gezeigt.
                    Wenn du z.B. <iframe src="...?wert=irgendwas" stehen hast, dann ist der GET-Parameter $_GET["wert"]

                    Wolf29
                    while (!asleep()) sheep++;

                    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                    Kommentar


                    • #11
                      Ein wenig Grundlagen solltest Du schon lernen!
                      Für Deinen Fall fang' mal mit $_GET an. Findest Du bei Google und PHP.net...
                      Competence-Center -> Enjoy the Informatrix
                      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                      Kommentar


                      • #12
                        Er speichert mir immer schön die Datei in die Datenbank ... aber ohne mutternummer ...

                        Kommentar


                        • #13
                          Wie sieht dein Code jetzt aus? Rufst du die Variable mit $_GET ab? wie übergibst Du sie an das iframe? Quellcode ist immer hilfreich

                          Wolf29
                          while (!asleep()) sheep++;

                          Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                          Kommentar


                          • #14
                            Du musst die "mutternummer" natürlich auch in das Formular einbringen, damit es beim Request auch mitgesendet wird...

                            PHP-Code:
                            echo "<form method=\"post\" action=\"" $PHP_SELF "?action=upload\" enctype=\"multipart/form-data\">";
                            echo 
                            "<input type=\"hidden\" name=\"MAX_FILES_SIZE\" value=\"2097152\">";
                            echo 
                            "<input type=\"file\" name=\"datei\" maxlength=\"2097152\" size=\"80\">&nbsp;&nbsp;&nbsp;";
                            echo 
                            "<input type=\"submit\" name=\"submit\" value=\"Uploaden\">";
                            echo 
                            "<br /><br /><br />";
                            echo 
                            "<img src='image/Download.png' width='150' height='150' alt='' />";
                            echo 
                            "</center>";
                            echo 
                            "<br /><br />";
                            echo 
                            "Nummer "$mutternummer ."<br /><br />";
                            echo 
                            "Bitte laden Sie hier die zugehörigen Dokumente in die Datenbank. Achten Sie bitte darauf, dass keine Leerzeichen im Dateinamen enthalten sind.<br />Gestalten Sie den Dateinamen bitte aussagekräftig.";
                            echo 
                            "</form>"
                            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                            Kommentar


                            • #15
                              Übergabe an das iframe:

                              PHP-Code:
                              <iframe name="uploder" src="upload.php?mutternummer=<?php echo $_GET["auswahl"] ;?>" align="center" frameborder="0" height="600" width="1000"></iframe>
                              und Abruf im iframe bei der Zuweisung des SQL Strings:

                              PHP-Code:
                              // Und ab in die mySQL Tabelle...
                              $sql "INSERT INTO tbl_XXX_dateien VALUES('', '" .$_GET["mutternummer"]. "', '".$dateiname."', '".$_FILES['datei']['type']."', '".$data."', '".$size."')";
                              @
                              mysql_query($sql); 
                              Die Variable wird eigentlich nur zum Speichern in der DB als weitere Info benötigt, damit die Datei später einem bestimmten Fall zugerechnet werden kann.

                              Kommentar

                              Lädt...
                              X