php gallerie - javascript popup

  • hi,

    also ich habe eine gallerie, hier sieht man die bilder in kleine, nun möchte ich bei nem klick auf ein bild, ein neues fenster öffnen wo das bild angezeigt wird.

    ich habe es nun mit java script und einer funktion probiert, die wenn man es aussführt, ein fenster aufmacht und üer url einen namen des bildes mitgibt.

    soweit,sogut...

    da sich das ganze in eine while befinden,um die ganzen daten abzufragen und auszugeben, überschreibt er mir jedesmal die javascript funktionen, bzw den namen des bildes,und behält somit schlussendlich nur den namen des letzten bildes...und diesen übergibt er,egal auf welches der bilder ich klicke...

    soweit verständlich?

    kann ich den funktionennamen irgendwie "dynmaisch" machen,also damit er mir nicht immer die selbe überschreibt?

    ...bzw gibts vorschläge für ne sinnvollere lösung?

  • Moin!

    Interessant ist nur der Teil:

    Code
    print "<script type='text/javascript'>
    
    
    		function FensterOeffnen(bild) {
     		 Fenster1 = window.open('bild.php?bild_gross='+bild, 'Zweitfenster', 'width=500,height=500,left=200,top=200');
     		 Fenster1.focus();
    			}
    		</script>";


    Damit wäre es jetzt schon dynamisch, du mußt nur die Bildnummer bei den Thumbernail-Links mit übergeben:

    Code
    [url='javascript:FensterOeffnen(1)'][img]thumb_1.jpg[/img][/url]

    Dadurch wird dein PHP-Script für die Bilder dann automatisch so aufgerufen: "bild.php?bild_gross=1"

    Verstanden ?

    G.a.d.M.

    Ronald

  • hi,verstehe es ungefähr.danke...

    allerdings bräuchte ich die bildnamen, die in der DB eingetragen sind...

    da gibts zum beispiel:

    standard.jpg
    mann.gif
    .
    .
    .

    diese namen müsste ich weitergeben...

    Code
    <a href='#' onclick='FensterOeffnen($photo)'>

    $photo sind die namen aus der DB...

    so funkt es leider nicht...hast du ne ahnung wie das geht?

  • O.K. - du must das $photo in Anführungsstriche setzen. Das klappt aber so nicht, da du die doppelten Anführungsstriche bereits für die Print-Funktion in PHP gebrauchst und die einfachen Anführungsstriche für die Javascript-Funktion im Verweis. Ein drittest Anführungszeichen gibt es nicht, du müßtest also nun die Anführungszeichen maskieren, was den Quelltext aber unübersichtlich macht.

    So geht es trotzdem:

    Code
    $ziel = "FensterOeffnen('$photo')";
    print "<a href ='javascript:$ziel'>";

    Beachte bitte, daß du die Javascript-Funktion außerhalb der Schleife erstellst, denn die soll ja nur 1x auf der Seite stehen und nicht so oft, wie es Bilder gibt, also so:

    G.a.d.M.

    Ronald

  • hab das nun so gemacht...allerdings gibt er mir noch nen syntaxfehler aus... der mir allerdings nicht viel weiter hilft.

    hier der voerst fertige code: ;)

    hab ich was übersehen,bzw falsch reingetragen?

  • wann hast du wahrscheinlich ein simikolon, eine klammer oder anführungszeichen vergessen (check mal die zeilen dadrüber)

    e: oder das php-ende ( ?> )

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • nein,klammern usw sind alle richtig gesetzt.

    diese zeile scheint daran schuld zu sein.

    $ziel = "FensterOeffnen('$photo')";

    also irgendwie kommt er damit nicht klar...wenn ich das $photo durch ne zahl ersetze haut das hin.

  • Alsio das kann eigentlich nicht das Problem sein, bei mir funktioniert es einwandfrei.
    Probiere es mal so:

    Code
    $ziel = "FensterOeffnen('".$photo."')";


    oder sonst mußt d das Anführungszeichen doch maskieren, so:

    Übrigens würde ich dir empfehlen mit echten Thumbernails zu arbeiten, statt das Bild einfach nur verkleinert darzustellen. Die Dateigröße für das Bild bleibt nämlich gleich, wenn du nur bei der Ausgabe die Abmessungen beschneidest - und da bedeutet Ladezeit!

    G.a.d.M.

    Ronald

  • danke,das 2te hat funktioniert,also das
    <a href ='javascript:FensterOeffnen(\"$photo\")'>

    nochmal vielen dank ronald,und auch dir bendor

    ihr habt nicht das letzte mal von mir gehört ;)