ppellero a écrit :
Voici le script complet je vais étudier le tiens pour essayer de les fusionner.
Les vignettes doivent êtres dans le répertoire "vignettes" et avoir le même nom que les photos.
Ha! tien ? il y a des vignettes maintenant ?
Je croyais que c'était un simple side-show (passe vue sans prévisualisation)
La fonction ejs_aff_photos se rappelle elle même et ne permet pas de récuperer un nouvelle valeur de num.
Merci de nous éviter le code php ... ici on traite du JavaScript !
[code]
<style>
div#galerie_mini {
overflow:auto;
white-space: nowrap;
width: 830px;
height:150px;
margin-left: auto;
margin-right: auto;
}
body {
background-color: #c0c0c0;
}
</style>
<DIV ID=ejs_photo_box></div>
<script type="text/javascript">
ejs_photo = new Array;
var numero = 0;
<?
global $a;
$a = 0;
$diapo = array();
Pourquoi ne peux tu simplement foreacher les noms de fichier pour ne faire écrire que ce nom dans l'array JS ?
Puisque les vignettes et photos ont même nom, pour trouver l'une ou l'autre il suffit alors de désigner leurs dossiers respectifs en plus.
$handle = opendir("./");
while (($fichier = readdir($handle))!=false) {
clearstatcache();
if (is_file("./$fichier") && eregi(".jpg",$fichier))
{
echo "ejs_photo[$a] = './$fichier';";
ben ... non ...
echo "ejs_photo[$a] = '$fichier';\n";
$diapo[$a] = $fichier;
$a++;
}
}
closedir($handle);
?> var nb = ejs_photo.length;
function ejs_aff_photos(numero)
{
num = numero;
if(document.getElementById)
{
if (num < 0) {
num = (nb-1);
}
if (num > (nb-1)) {
num = 0;
}
ejs_fin = "";
Là, je ne comprends toujours pas pourquoi il faut faire innerHTMLer tout ce fatras.
à chaque changement de vue ! !
ejs_fin += "<input type='button' value='<< image précédente' onClick='ejs_aff_photos("+(num-1)+");return(false)'>";
ejs_fin += "<input type='button' value='Autres photos' onClick='window.close(); return(false)'>";
ejs_fin += "<input type='button' value='image suivante >>' onClick='ejs_aff_photos("+(num+1)+");return(false)'>";
document.getElementById("ejs_photo_box").innerHTML = "<table border=2 width=100%><tr><td height=620><CENTER><IMG id=MonImage value=num SRC='"+ejs_photo[num]+"' BORDER=5></td></tr><tr><td colspan=2
SRC='photos/"+ejs_photo[num]+"' BORDER=5></td></tr><tr><td colspan=2
align=center><BR />"+ejs_fin+"</CENTER></td></tr></table>";
}
} //fin de fonction affiche photos
function pointe(x) {
numero = x;
document.MonImage.src = ejs_photo[x];
return num;
} //fin de function pointe
function pointe(quoi) {
for(var i in ejs_photo)
if(ejs_photo[i]==quoi) ejs_aff_photos(i);
}
ou (si le dossier des photos est [photos] ) :
function pointe(quoi) {
document.MonImage.src = 'photos/' + quoi;
}
window.onload = new Function("ejs_aff_photos(0)")
</script>
<div id="galerie_mini">
<br />
<?php
$base = ("vignettes/");
$i = 0;
while( $i < $a )
{
$vig = $diapo[$i];
//echo $base.$vig;
print ( "<img src=\"$base$vig\" onclick=\"pointe('$vig');\"
title=\"Clic pour grande vue\" alt=''>\n");
$i++;
}
?>
</div>
[/code]
--
sm