Whitesnake: Pop-Up öffnen mit mitgeschicktem Bild plus Text

Hallo!
Hab ein kleines Problem und ich weiß nicht wie ich es realisieren soll. Es ist so: Ich hab eine Seite mit paar Bildern und wenn ich ein Bild anklicke, dann soll ein Pop-Up. Das Pop-Up soll dynamisch gemacht werden. Es soll ein mitgeschicktes Bild plus mitgeschickten Text haben. Sprich beim Klicken auf den Link sollen Bild plus Text an die Pop-Up Datei geschickt werden.

Das ganze ist deswegen so blöd, weil das Pop-Up nur eine Seite sein soll die dynamisch zusammengestellt wird (aus mitgeschicktem Bild plus mitgeschicktem Text). Weiß jemand wie sowas funktioniert?

  1. Hi,

    wenn der Text lang ist, würde ich zu einer datenbankbasierten Lösung raten Da könnte man mit dem Link, der das PopUp aufruft, die id oder etwas ähnliches übergeben und dann in dem dynamisch erstellten Fenster die entsprechenden Daten abrufen. Ansonsten müsste man die Parameter eben mit dem Link an das PopUp übergeben, denke ich.

    Gruß
    Ben

    1. Hallo!

      Eben diese Parameterübergabe bekomme ich nicht hin. Ich weiß gar nicht wie ich ansetzen soll. Hab mit php nicht wirklich die Erfahrung um was hinzukriegen. Möchte das ohne Datenbank machen, das zahlt sich nicht aus für vier Wörter.

      1. Hi,

        das ist eigentlich ganz einfach. Du nimmst deinen PopUp-Link und hängst dann mit einem Fragezeichen getrennt deine Variablen dahinter: ?bild=blabla.jpg&text=Text
        (2 Variablen immer mit & trennen)

        In der Datei kannst du dann mit $_GET["bild"] und $_GET["text"] darauf zurückgreifen und einfach ausgeben. Probier das mal so :-)

        Gruß
        Ben

        1. Hallo!

          Ja schön langsam glaub ich ist die Lösung in Greifweite. Habe es bislang auch so gelöst gehabt wie du es sagtest, nur halt mit JavaScript, weil das Fenster noch angepasst wird. Hier mal mein Aufrufbefehl:

          <A href="#" onClick="javascript:window.open('dynseite.php?../bilder/bild.jpg','Fensterchen','toolbar=no,status=no,menubar=no,scrollbars=no,width=150,height=200'); return false; ">das ist zu verlinken</a>

          Und der Inhalt von dynseite.php sieht so aus:

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
          <head>
          <title>Titel</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
          <style type="text/css">
          #box1 { position:absolute; top:0px; left:0px;  z-index:1; }
          </style>
          <script language="JavaScript" type='text/javascript'>
          function resize() {
           if(document.all) {
            x = (screen.width - bild.width) / 2;
            y = (screen.height - bild.height) / 2;
           }
           else {
            x = (screen.width - document.getElementById("bild").width) / 2;
            y = (screen.height - document.getElementById("bild").height) / 2;
           }
           self.moveTo(x, y);
           self.focus();
          }
          </script>

          </head>
          <body>
          <div id="box1" style="background:black; border:solid 0px blue;">
            <script language="JavaScript" type='text/javascript'>
                      src = location.search;
                      src = src.substr(1);
                      document.write('<img onclick="self.close()" style="cursor:hand;" onload="resize();" id="bild" src="'+src+'">');
                    </script>
          </div>
          </body>
          </html>

          Das hier kein Strich php ist, täuscht nicht, das soll schon so sein. Wie müsste ich das jetzt adaptieren?

          Hi,

          das ist eigentlich ganz einfach. Du nimmst deinen PopUp-Link und hängst dann mit einem Fragezeichen getrennt deine Variablen dahinter: ?bild=blabla.jpg&text=Text
          (2 Variablen immer mit & trennen)

          In der Datei kannst du dann mit $_GET["bild"] und $_GET["text"] darauf zurückgreifen und einfach ausgeben. Probier das mal so :-)

          Gruß
          Ben

          1. Hi,

            ich würde es wohl so probieren:

            <A href="dynseite.php?bild=../bilder/bild.jpg" onClick="javascript:window.open('dynseite.php?bild=../bilder/bild.jpg','Fensterchen','toolbar=no,status=no,menubar=no,scrollbars=no,width=150,height=200'); return false; ">das ist zu verlinken</a>

            <div id="box1" style="background:black; border:solid 0px blue;">
            <script language="JavaScript" type='text/javascript'>
            document.write('<img onclick="self.close()" style="cursor:hand;" onload="resize();" id="bild" src="'<? echo $_GET["bild"]; ?>'">');
                     </script>
            </div>

            Gruß
            Ben

            1. Hallo!

              Tausend Dank, jetzt funktioniert es! *frohbin*

              1. Hi,

                nix zu danken! :-) Freut mich, dass es jetzt klappt. Hatte bei dem PopUp-Link übrigens noch die # durch den normalen Link ersetzt. Dann können auch Leute, die JS ausgeschaltet haben die Seite aufrufen (wobei sie dort wohl aufgrund des mit JS generierten Inhalts eh nichts sehen werden... *g*).

                Gruß
                Ben

                1. Ist bei mir aber durchaus brauchbar, denn ich habe jetzt diese Seitenanpassung rausgeworfen, da ich die Bild plus Text in eine Tabelle stelle die absichtlich nicht am Rande kleben soll (ursprünglich war ja das Scripterl ja nur für Bilder gedacht), von da her werd ich das ganze JavaScripterl rauswerfen. Ich habe das bislang immer mit JavaScript gemacht und konnte logischerweise mit dem Substring nicht wirklich mehr als eine Information übergeben.

  2. Hello,

    da fallen mir eine einfache und eine komplexe Lösung ein.

    Man kann einer Blanko-Datei, die in das Popup geladen wird, über Aufrufparamter die passenden Informationen mitgeben.
    1. Name der Bild-Datei
    2. Text

    beides URL-encoded.

    Pder man könnte mit einer Session arbeiten. Dann könnte man diese Informationen in die Session schreiben unter einem Index und diesen Index übergibt man dann im Aufrufparamter des "Blanko-Files"

    Javascript:

    F1 = window.open("popup.php?i=123456","popup_01","width=310,height=400,left=0,top=0");

    <?php  ### popup.php ###

    doctype

    head

    echo "<img src="".$_SESSION[$_GET['i']]['img_ref']."" alt="....">";
      echo htmlentities($_SESSION[$_GET['i']]['img_ref']);

    ?>

    Das ist natürlich nuir die Grundidee. Man sollte in der PHP-datei auch ruhig isset() verwenden und Ersatzbild und Ersatztext anbeiten, falls ein Fehler auftrat usw.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen