Hallow..

Dit gaat even totaal niet over PHP maar over JS (A)

M'n vraag:

Ik heb een laadblak script gevonde op het internet.
Dit scriptje laat een laadbalk zien en begint alle opgegeeven plaatjes te laaden.. Om plaatjes toe te voegen moet je deze regel veranderen:

var imagenames=new Array( '../pics/foto1.jpg' , '../pics/foto2.jpg' , '../pics/foto3.jpg' , '../pics/foto4.jpg' ,  '../pics/foto5.jpg' );

Is er een manier om alle bestande uit de map pics te laten zien ineplaats van dat je ze allemaal moet neer zetten?

<?php

$images = listImageFiles('/mijn-map');

echo "var imagenames = new Array('" . implode("', '", $images) . "');";

?>
maar volgens mij kun je in een .js bestand geen php zetten hoor :S
Hernoem het bestand naar .php en het kan wel :)

Inn het src-attribuut van het sript-element maakt de extentie .php of .js echt niet uit.
Nee, je kan wel gewoon zo doen:

<script src="laadbalk.php"></script>

en php het javascript bestand laten genereren door php.
je moet wel bovenaan in laadbalk.php dit zetten:

<?php
header('Content-type: text/js');
?>

sommige browsers snappen niet dat je het als js wilt gebruiken, maar met dat regeltje wel.
De header is dan toch text/javascript?

<?php
header('Content-type: text/javascript');
?>
Jip schreef op 01.08.2006 15:22
De header is dan toch text/javascript?

<?php
header('Content-type: text/javascript');
?>

Dacht het niet.
Het was toch ook <script language="javascript" en type="text/js">???
Nee het is type="text/javascript"
PHPerik schreef op 01.08.2006 15:32
Nee het is type="text/javascript"

Dan is het dus toch

<?php
header('Content-type: text/javascript');
?> 

. Sorry v00r de fout
oke, heb nu laadbalk.php met de volgende code:

<?php
header('Content-type: text/javascript');

function listImageFiless ($dir) {
    if ($handle = opendir($dir)) {
        $imgs = array ();
    
        while (false !== ($file = readdir($handle))) { 
            if ($file != "." && $file != "..") {
                if (eregi (".jpg|.gif|.png", $file)) {
                    $imgs[] = $file;
                    $n++;
                }
            }
        }
        sort ($imgs);
        reset ($imgs);
        closedir($handle);
    }
    return $imgs;
}

$images = listImageFiles('image');
echo "var imagenames = new Array('" . implode("', '", $images) . "');";

?>

var yposition=220;          // laadbalk positie, vanaf bovenkant venster, in pixels
var loadedcolor='blue' ;    // laadbalk kleur ingeladen beelden
var unloadedcolor='yellow'; // laadbalk kleur nog in te laden beelden
var barheight=15;           // laadbalk hoogte in pixels
var barwidth=400;           // laadbalk breedte in pixels  
var bordercolor='black';    // laadbalk randkleur

// hieronder niets wijzigen :
var NS4 = (navigator.appName.indexOf("Netscape")>=0 && parseFloat(navigator.appVersion) >= 4 && parseFloat(navigator.appVersion) < 5)? true : false;
var IE4 = (document.all)? true : false;
var NS6 = (parseFloat(navigator.appVersion) >= 5 && navigator.appName.indexOf("Netscape")>=0 )? true: false;
var imagesdone=false;
var blocksize=barwidth/(imagenames.length);
barheight=Math.max(barheight,25);
var loaded=0, perouter, perdone, images=new Array();
var txt=(NS4)?'<layer name="perouter" bgcolor="'+bordercolor+'" visibility="hide">' : '<div id="perouter" style="position:absolute; visibility:hidden; background-color:'+bordercolor+'">';
txt+='<table cellpadding="0" cellspacing="1" border="0"><tr><td width="'+barwidth+'" height="'+barheight+'" valign="center">';
if(NS4)txt+='<ilayer width="100%" height="100%"><layer width="100%" height="100%" bgcolor="'+unloadedcolor+'" top="0" left="0">';
txt+='<table cellpadding="0" cellspacing="0" border="0"><tr><td valign="center" width="'+barwidth+'" height="'+barheight+'" bgcolor="'+unloadedcolor+'"><center><font color="'+loadedcolor+'" size="2" face="sans-serif">Bezig met het inladen van de afbeeldingen ...</font></center></td></tr></table>';
if(NS4) txt+='</layer>';
txt+=(NS4)? '<layer name="perdone" width="100%" height="'+barheight+'" bgcolor="'+loadedcolor+'" top="0" left="0">' : '<div id="perdone" style="position:absolute; top:1px; left:1px; width:'+barwidth+'px; height:'+barheight+'px; background-color:'+loadedcolor+'; z-index:100">';
txt+='<table cellpadding="0" cellspacing="0" border="0"><tr><td valign="center" width="'+barwidth+'" height="'+barheight+'" bgcolor="'+loadedcolor+'"><center><font color="'+unloadedcolor+'" size="2" face="sans-serif">Bezig met het inladen van de afbeeldingen ...</font></center></td></tr></table>';
txt+=(NS4)? '</layer></ilayer>' : '</div>';
txt+='</td></tr></table>';
txt+=(NS4)?'</layer>' : '</div>';
document.write(txt);
function loadimages(){
if(NS4){
perouter=document.perouter;
perdone=document.perouter.document.layers[0].document.perdone;
}
if(NS6){
perouter=document.getElementById('perouter');
perdone=document.getElementById('perdone');
}
if(IE4){
perouter=document.all.perouter;
perdone=document.all.perdone;
}
cliplayer(perdone,0,0,barheight,0);
window.onresize=setouterpos;
setouterpos();
for(n=0;n<imagenames.length;n++){
images[n]=new Image();
images[n].src=imagenames[n];
setTimeout('checkload('+n+')' ,n*100);
}}
function setouterpos(){
var ww=(IE4)? document.body.clientWidth : window.innerWidth;
var x=(ww-barwidth)/2;
if(NS4){
perouter.moveTo(x,yposition);
perouter.visibility="show";
}
if(IE4||NS6){
perouter.style.left=x+'px';
perouter.style.top=yposition+'px';
perouter.style.visibility="visible";
}}
function dispbars(){
loaded++;
cliplayer(perdone, 0, blocksize*loaded, barheight, 0);
if(loaded>=imagenames.length)setTimeout('hideperouter()', 800);
}
function checkload(index){
(images[index].complete)? dispbars() : setTimeout('checkload('+index+')', 100);
}
function hideperouter(){
(NS4)? perouter.visibility="hide" : perouter.style.visibility="hidden";
imagesdone=true;
}
function cliplayer(layer, ct, cr, cb, cl){
if(NS4){
layer.clip.left=cl;
layer.clip.top=ct;
layer.clip.right=cr;
layer.clip.bottom=cb;
}
if(IE4||NS6)layer.style.clip='rect('+ct+' '+cr+' '+cb+' '+cl+')';
}
window.onload=loadimages;



in m'n index.php staat:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
<script src="laadbalk.php"></script>
</head>

<body>
<center>Plaatjes die gelaaden zijn:</center><br><br>
<?php
function listImageFiless ($dir) {
    if ($handle = opendir($dir)) {
        $imgs = array ();
    
        while (false !== ($file = readdir($handle))) { 
            if ($file != "." && $file != "..") {
                if (eregi (".jpg|.gif|.png|.bmp", $file)) {
                    $imgs[] = $file;
                    $n++;
                }
            }
        }
        sort ($imgs);
        reset ($imgs);
        closedir($handle);
    }
    return $imgs;
}

$images = listImageFiless('images');
 echo implode(", ", $images);
?>
</body>

</html>



Maar, geen laadbalk =(

Reageren