Javascript Slideshow mit PHP-Ordnervariable

Triesch

Grünschnabel
Hi Leute ich habe follgenes problem.

Ich habe eine Vertikale java Slideshow due funktioniert, doch jetzt möchte ich mit einer PHP Function einen ordner auslesen wo die Jpg`s enthalten sind und sie im Java mit echo ausgeben.

Das funktioniert auch alles soweit wunderbar, doch leider wird immer nur ein und das selbe bild geslidet.

Wenn ich das echo Pur hinschreibe, dann zeigt er mir alle bilder an.

Hier mal der Code:

Code:
<?php
$dir = 'images/bannerrotation/';
$files = scandir($dir);
foreach($files as $file):
if(preg_match('/\.jpg$/i', $file))
$jpg[] = $dir.’/’.$file;
endforeach;
foreach($jpg as $img)
?>


<script language="JavaScript1.2">
//Specify the marquee's width (in pixels)
var marqueewidth=150
//Specify the marquee's height
var marqueeheight=520
//Specify the marquee's scroll speed (larger is faster)
var speed=3
//Specify the marquee contents
var marqueecontents='<? echo '<img src="'.$img.'"/>'?>'
if (document.all)
document.write('<marquee direction="up" scrollAmount='+speed+' style="width:'+marqueewidth+';height:'+marqueeheight+'">'+marqueecontents+'</marquee>')

function regenerate(){
window.location.reload()
}
function regenerate2(){
if (document.layers){
setTimeout("window.onresize=regenerate",450)
intializemarquee()
}
}

function intializemarquee(){
document.cmarquee01.document.cmarquee02.document.write(marqueecontents)
document.cmarquee01.document.cmarquee02.document.close()
thelength=document.cmarquee01.document.cmarquee02.document.height
scrollit()
}

function scrollit(){
if (document.cmarquee01.document.cmarquee02.top>=thelength*(-1)){
document.cmarquee01.document.cmarquee02.top-=speed
setTimeout("scrollit()",100)
}
else{
document.cmarquee01.document.cmarquee02.top=marqueeheight
scrollit()
}
}

window.onload=regenerate2
</script>


<ilayer width=&{marqueewidth}; height=&{marqueeheight}; name="cmarquee01">
<layer name="cmarquee02" width=&{marqueewidth}; height=&{marqueeheight};></layer>
</ilayer>

Ich danke schon mal für die Hilfe.

Und sorry falls ich gegen Forum regel verstoßen haben sollte.
 
Moin,

Code:
foreach($jpg as $img)

Diese Schleife macht nicht weiter, als eine Vaiable $img zu Erstellen, die im vorherigen Durchlauf erstellte wird dabei jedes mal überschrieben, deswegen siehst du nur 1 Bild.

Ändere den PHP-Teil dahingehend ab:
Code:
<?php
$jpg=array();
$marqueecontents='';
$dir = './';
$files = scandir($dir);
foreach($files as $file):
if(preg_match('/\.jpg$/i', $file))
$jpg[] = $dir.'/'.$file;
endforeach;
foreach($jpg as $img)  $marqueecontents.='<img src="'.$img.'" />';
?>

Und jenen Teil in der JS-Passage:
Code:
var marqueecontents='<? echo '<img src="'.$img.'"/>'?>'
...in dies:
Code:
var marqueecontents='<?php echo $marqueecontents;?>';

Dann solltest du alle Bilder sehen.

Wenn du dann dieses:
Code:
if (document.all)
...noch aus dem JS-Teil enfernst, siehst du das Ganze auch noch in anderen Browsern ausser IE+Opera.
 

Neue Beiträge

Zurück