Bilder Popup aus PHP Script
sven
- javascript
Hallo.
Ich habe Thumbnails auf einer Seite, und möchte durch klicken auf ein Bild ein Popup mit diesem öffnen lassen.
Ich kenne JS nicht besonders gut...
Was ist hier falsch?
echo"<script src='galerie.js' type='text/javascript'></script>";
echo"<table width=100% border=0><tr>";
$main = mysql_query("select * from audio_bilder where galerie_id='$galerie_id'");
$count=0;
while($main_row = mysql_fetch_array($main))
{
if ($count=="4")
{
echo"</tr><tr>";
$count='0';
}
echo"<td><a href='javascript:Showpopup(uploaded_pics/$pfad/$main_row[dname],$main_row[dname],600,450,470)'><img src='upload_pics/$pfad/thumbs/$main_row[dname]' class='bildgalerie' /><br><span class='bildunterschrift'>$main_row[untertext]</span></a></td>";
$count++;
}
echo"</tr></table>";
und galerie.js: (im gleichen Verzeichnis)
function Showpopup(Bild,Titel,Breite,Hoehe,FensterHoehe) {
MarginLeft = (screen.width - Breite ) /2;
MarginTop = (screen.height - FensterHoehe) /2;
Optionen = 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,left='+MarginLeft+',top='+MarginTop+',height='+FensterHoehe+',width='+Breite;
Popup = window.open('','',Optionen)
with (Popup) {
document.writeln('<html><head><title>' + Titel + '</title><style type="text/css"><!-- body {background-color:#193c50;} a,a:link,a:visited,a:active {color:#eeeeee;font-family:Arial,Helvetica,sans-serif;text-decoration:underline;} a:hover {color:#eeeeee;font-family:Arial,Helvetica,sans-serif;text-decoration:none;} //--></style></head>');
document.writeln('<body topmargin="0" leftmargin="0" marginwidth=0 marginheight=0><img src="'+Bild+'" alt="'+Titel+'" width="'+Breite+'" height="'+Hoehe+'"><div style="text-align:center"><a href="javascript:window.close()">Fenster schließen</a></div></body></html>')
}
}
kann es irgendein Problem mit den Anführungszeichen beim Aufrufen sein?
Danke, sven
Hi,
Ich kenne JS nicht besonders gut...
wichtigste Erkenntnis: es läuft clientseitig. Das bedeutet, dass jede serverseitige Technik, also etwa PHP, für JavaScript völlig uninteressant ist. Sieh Dir ausschließlich das an, was der Browser erhält, nicht den PHP-Code - und beachte insbesondere auch die Fehlermeldungen des Browsers.
echo"<td><a href='javascript:Showpopup(uploaded_pics/$pfad/$main_row[dname],$main_row[dname],600,450,470)'><img src='upload_pics/$pfad/thumbs/$main_row[dname]' [...]
Das Ergebnis dieser Zeile dürfte insofern interessant sein, als dass der Client vermutlich keine JavaScript-Variable namens "uploaded_pics" kennt, die sich durch das teilen lässt, was PHP für $pfad und $main_row[dname] ausgibt.
kann es irgendein Problem mit den Anführungszeichen beim Aufrufen sein?
Ja :-)
Cheatah
wichtigste Erkenntnis: es läuft clientseitig. Das bedeutet, dass jede serverseitige Technik, also etwa PHP, für JavaScript völlig uninteressant ist. Sieh Dir ausschließlich das an, was der Browser erhält, nicht den PHP-Code - und beachte insbesondere auch die Fehlermeldungen des Browsers.
ok. war mir schon klar. Ich kann aber doch über den PHP echo Befehl auch Variablen in JS einsetzen.
echo"<td><a href='javascript:Showpopup(uploaded_pics/$pfad/$main_row[dname],$main_row[dname],600,450,470)'><img src='upload_pics/$pfad/thumbs/$main_row[dname]' [...]
Das Ergebnis dieser Zeile dürfte insofern interessant sein, als dass der Client vermutlich keine JavaScript-Variable namens "uploaded_pics" kennt, die sich durch das teilen lässt, was PHP für $pfad und $main_row[dname] ausgibt.
Wieso sieht er uploaded Pics als Variable?
wo kann man etwas über JS lernen?
echo"<a href="javascript:Showpopup('uploaded_pics/$pfad/$main_row[dname]','$main_row[dname]',600,450,470)">
Wäre das besser?? aber ich kann doch PHP nicht dazu bringen " in der Html Ausgabe (im ausgegebenen quellcode) zu verwenden...verstehst du was ich meine?
sven
Hi,
ok. war mir schon klar. Ich kann aber doch über den PHP echo Befehl auch Variablen in JS einsetzen.
ja - das ist für JavaScript aber unerheblich. Wichtig ist _ausschließlich_ der beim Browser ankommende Quellcode, der nicht mehr den Hauch des Schattens einer Spur von PHP enthält.
echo"<td><a href='javascript:Showpopup(uploaded_pics/$pfad/$main_row[dname],$main_row[dname],600,450,470)'><img src='upload_pics/$pfad/thumbs/$main_row[dname]' [...]
Das Ergebnis dieser Zeile dürfte insofern interessant sein, als dass der Client vermutlich keine JavaScript-Variable namens "uploaded_pics" kennt, die sich durch das teilen lässt, was PHP für $pfad und $main_row[dname] ausgibt.
Wieso sieht er uploaded Pics als Variable?
Weil Du JavaScript nicht gesagt hast, dass es ein String sein soll. Dazu braucht es nämlich Double- oder Singlequotes.
wo kann man etwas über JS lernen?
In SelfHTML natürlich :-)
echo"<a href="
Hier ist der ausgegebene String für PHP zu Ende; der Rest der Zeile dürfte einen Fehler ergeben. Wie in den meisten Programmiersprachen ist auch in PHP (und in JavaScript) der Backslash das Escape-Zeichen.
Übrigens: Trenne Kommando und Argument bitte durch Leerzeichen; nur bei Funktionen wird die Klammer direkt an den Funktionsnamen angeschlossen. Bei Operationen wie "if" und "while" ist die Bedingung inklusive der Klammern das Argument.
Cheatah
Hi,
ja - das ist für JavaScript aber unerheblich. Wichtig ist _ausschließlich_ der beim Browser ankommende Quellcode, der nicht mehr den Hauch des Schattens einer Spur von PHP enthält.
Hier haben wir wohl irgendwie aneinander vorbei geredet..das ist mir klar, bin recht Firm in PHP.
ok. PHP erzeugt z.B. folgende Zeile:
<a href='javascript:Showpopup('uploaded_pics/testgalerie_ae_ue_oe_ss/Werdohl_oldie_1.jpg','Werdohl_oldie_1.jpg',600,450,470)'>
Das ist imho fast gut, aber müßten nicht, damit es funzt, die ersten ' in der Ausgabe von PHP durch " ersetzt werden?
meinst du das was getrennt werden muss in der galerie.js?
Danke, sven
Hi,
Das ist imho fast gut, aber müßten nicht, damit es funzt, die ersten ' in der Ausgabe von PHP durch " ersetzt werden?
nicht damit es "funzt", aber damit es funktioniert. Wobei es unerheblich ist, ob Du die äußeren Quotes ersetzt oder die inneren - sowohl für HTML als auch für JavaScript sind Double- und Singlequotes gleichwertig. "Schöner" ist es aber, HTML-Attributwerte in Doublequotes zu kleiden.
Mein Hinweis darauf, welches das Escape-Zeichen ist, war nicht ganz zufällig...
meinst du das was getrennt werden muss in der galerie.js?
Hm? Nein, eigentlich nicht.
Cheatah
ah ja...ich verstehe...es klappt..na klar...
aber warum nicht unter NS 4.78..naja..da kümmere ich mich morgen drum...letzte Frage:
Wenn ein User kein JS aktiviert hat, kann man den Link so hinbiegen das er sch in nem normalen neuen Fenster öffnet?
Hi Sven,
Wenn ein User kein JS aktiviert hat, kann man den Link so hinbiegen das er sch in nem normalen neuen Fenster öffnet?
ja, nach dem Schema
<a href="ziel.htm" target="..." onclick="window.open( ... ); return false;">Link</a>
Siehe auch
http://home.t-online.de/home/dj5nu/js-popup.html
LG Roland
Hallo.
Ich habe Thumbnails auf einer Seite, und möchte durch klicken auf ein Bild ein Popup mit diesem öffnen lassen.
Ich kenne JS nicht besonders gut...
Was ist hier falsch?echo"<td><a href='javascript:Showpopup(uploaded_pics/$pfad/$main_row[dname],$main_row[dname],600,450,470)'><img src='upload_pics/$pfad/thumbs/$main_row[dname]' class='bildgalerie' /><br><span class='bildunterschrift'>$main_row[untertext]</span></a></td>";
Vielleicht versuchst du mal dieses Skript: http://home.arcor.de/struebig/js/popup/popup_2.htm das hat den Vorteil, das der Thumbnail Link auch ohne Javascript funktioniert und die Fenster sich automatisch an die Bildergröße anpassen.
Dein obiger Link würde dann so aussehen:
echo"<a href='uploaded_pics/$pfad/$main_row[dname]'
onclick='showBild(this.href);return false;'>
<img src='upload_pics/$pfad/thumbs/$main_row[dname]' class='bildgalerie' /><br><span class='bildunterschrift'>$main_row[untertext]</span></a>";
Struppi.