Tucker
Erfahrenes Mitglied
Ich wunsste nun nicht, ob das nun in die anderen Threads so passt, wenn ich hier eine serverseitige und eine clientseitige Programmiersprache verknüpfe. Also ich habe folgendes Problem. Ich bastle zur Zeit an einer Bildergallerie. Diese unterteilt sich in 3 Ansichten:
Nun zum Problem mit der SlideShow. Ich habe kaum Ahnung von JavaScript, also habe ich ein vorgefertigtes Script aus dem Dreamweaver genommen:
Die Beiden Platzhalter {slideshow} und {slidelist} ersetz ich mit PHP bzw. folgendem Script:
Und wenn ich das nun alles so ausprobiere, da kommt mir eine JS- Fehlermeldung. Aber seht doch am besten selbst: http://www.ssvlommatzsch.de/aktion=ausgabe&pfad=gallerie&kategorie=1
- Kategorieauswahl
- Gallerieauswahl (Hier soll eine SlideShow aller vorhandenen Thumbnails rein)
- Bilderansicht
Nun zum Problem mit der SlideShow. Ich habe kaum Ahnung von JavaScript, also habe ich ein vorgefertigtes Script aus dem Dreamweaver genommen:
Code:
<script language="JavaScript">
// BODY Example:
// <body onLoad="mySlideShow1.play(); mySlideShow2.play();">
// <img src="originalImage1.gif" name="slide1">
// <img src="originalImage2.gif" name="slide2">
//
// SCRIPT Example:
// var mySlideList1 = ['image1.gif', 'image2.gif', 'image3.gif'];
// var mySlideShow1 = new SlideShow(mySlideList1, 'slide1', 3000, "mySlideShow1");
// var mySlideList2 = ['image4.gif', 'image5.gif', 'image6.gif'];
// var mySlideShow2 = new SlideShow(mySlideList2, 'slide2', 1000, "mySlideShow2");
{sliedlist}
{slideshow}
function SlideShow(slideList, image, speed, name)
{
this.slideList = slideList;
this.image = image;
this.speed = speed;
this.name = name;
this.current = 0;
this.timer = 0;
}
SlideShow.prototype.play = SlideShow_play;
function SlideShow_play()
{
with(this)
{
if(current++ == slideList.length-1) current = 0;
switchImage(image, slideList[current]);
clearTimeout(timer);
timer = setTimeout(name+'.play()', speed);
}
}
</script>
Die Beiden Platzhalter {slideshow} und {slidelist} ersetz ich mit PHP bzw. folgendem Script:
PHP:
$javascript=implode("", file("js/dia_show.txt"));
$sql="SELECT * FROM `ssv_gallerie_gallerien` WHERE `kategorie_id` = '".$_GET["kategorie"]."'";
$erg=mysql_query($sql);
while ($daten[] = mysql_fetch_array($erg))
{
}
for ($i = 0 ; $i < mysql_num_rows($erg) ; $i ++)
{
$sql="SELECT * FROM `ssv_gallerie_bilder` WHERE `gallerie_id` = '".$daten[$i]["id"]."'";
$ergebnis=mysql_query($sql);
while($thumbnails[] = mysql_fetch_array($ergebnis))
{
}
for ($z = 0 ; $z < mysql_num_rows($ergebnis) ; $z++)
{
$bilder[]="'gallerie/".$thumbnails[$z]["thumbnail"]."'";
}
$bild= implode(",", $bilder);
$slidelist[]='var mySlideList'.($i+1).' = ['.$bild.'];';
$name='slide'.($i+1);
$slideshow[]='var mySlideShow'.($i+1).' = new SlideShow(mySlideList'.($i+1).', \''.$name.'\' , 3000, "mySlideShow"'.($i+1).'");';
$onLoad[]="mySlideShow".($i+1).".play()";
unset($bild);
}
if (mysql_num_rows($erg) >= 1)
{
$onLoad=implode("; ", $onLoad).";"; // wird in <body onLoad=""> eingefügt.
}
else
{
$onLoad=""; // wird in <body onLoad=""> eingefügt.
}
$slidelist=implode("", $slidelist);
$slideshow=implode("", $slideshow);
echo str_replace("{sliedlist}", $slidelist, str_replace("{slideshow}", $slideshow, $javascript));
unset($daten);
Und wenn ich das nun alles so ausprobiere, da kommt mir eine JS- Fehlermeldung. Aber seht doch am besten selbst: http://www.ssvlommatzsch.de/aktion=ausgabe&pfad=gallerie&kategorie=1
Zuletzt bearbeitet: