readdir? oder so was..

PaRkY

Gesperrt
Tach Leute.. habe für meine Seite einen Diashow-Codeschnipsel gesucht und gefunden. Nun möchte ich statt:

Code:
var Pic = new Array() // don't touch this
// to add more images, just continue
// the pattern, adding to the array below

Pic[0] = '1.jpg'
Pic[1] = '2.jpg'
Pic[2] = '3.jpg'
Pic[3] = '4.jpg'
Pic[4] = '5.jpg'

dass das Script mir automatisch alle Bilder aus einem angegebenen Ordner auflistet, damit das umständliche Eingeben aller Bildernamen (vorallem wenn es sich nicht um gerade mal 5 Bilder handelt) entschwindet.

Wie realisiere ich das am besten?

Danke für die Hilfe..
 
mit Javascript-garnicht.
Da du aber, soweit ich weiss...PHP verfügbar hast, kannst du damit das Verzeichnis auslesen und den entsprechenden Code für den JS-Array erzeugen.
 
habs jetzt so gemacht..

PHP:
<?php
$PfadBilder="../images/pictures/$gallerie/";

if($Verzeichniszeiger=opendir($PfadBilder))
{
	$i=0;
	while($Datei=readdir($Verzeichniszeiger))
	{
	$i++;
	echo"Pic[$i] = '$Datei'";

	}		
	}
?>
jetzt hab ich aber das problem, dass das JS das ganze Zeug nicht versteht:

HTML:
<script type="text/javascript" language="JavaScript">
// Set slideShowSpeed (milliseconds)
var slideShowSpeed = 5000

// Duration of crossfade (seconds)
var crossFadeDuration = 3

var Pic = new Array()
</script>
PHP:
<?php
$PfadBilder="../images/pictures/$gallerie/";

if($Verzeichniszeiger=opendir($PfadBilder))
{
	$i=0;
	while($Datei=readdir($Verzeichniszeiger))
	{
	$i++;
	echo"Pic[$i] = '$Datei'";

	}		
	}
?>
HTML:
<script type="text/javascript" language="JavaScript">
var t
var j = 0
var p = Pic.length

var preLoad = new Array()
for (i = 0; i < p; i++){
   preLoad[i] = new Image()
   preLoad[i].src = Pic[i]
}

function runSlideShow(){
   if (document.all){
      document.images.SlideShow.style.filter="blendTrans(duration=2)"
      document.images.SlideShow.style.filter="blendTrans(duration=crossFadeDuration)"
      document.images.SlideShow.filters.blendTrans.Apply()      
   }
   document.images.SlideShow.src = preLoad[j].src
   if (document.all){
      document.images.SlideShow.filters.blendTrans.Play()
   }
   j = j + 1
   if (j > (p-1)) j=0
   t = setTimeout('runSlideShow()', slideShowSpeed)
}
</script>
 
Schau in den Quelltext(Browser>Ansicht)...dann siehst du, dass zwischen den Arrayelementen ein Semikolon fehlt.

Ansonsten... ich habs satt, hier jeden 2. persönlich aufzufordern, keinen ASP/PHP/Weissdergeier-Code in Javascript-Fragestellungen zu verwenden.
Wenn du Probleme mit dem echo()-Befehl hast, konsultiere die PHP-Doku oder wende dich ans PHP-Board.
 

Neue Beiträge

Zurück