Bonjour, je suis tout nouveau ici et je n'ai pas l'habitude de poster sur un forum.
Je vais essayer d'être le plus clair possible.
Dans une page php, j'ai réalisé un diaporama.
Au dessus de ce diaporama, il y a toutes les photos contenues dans ce diaporama.
Elles sont affichées les unes à côté des autres.
Je souhaite, lorsque je clique sur l'un d'elle, aller sur mon diaporama.
J'utilise donc une ancre sur chacune des photos.
Malheureusement, quand je clique pour la première fois sur une photo qui n'a pas été encore visualisé,
mon ancre ne fonctionne pas et je reste au même endroit sur la page.
Second problème, sous mon diaporama, il y a les boutons "suivant" et "précédent".
Même soucis qu'avant, lorsque je clique sur l'un de ces boutons et que la photo suivante ou précédente n'a pas encore
été vu, je remonte dans ma page.
Voila le morceau de mon code :
if($nbphotos>0)
{
echo('<br/><IMG SRC="../images/puce2.gif" align="middle" id="photo"><B>Les photos :</B>');
echo('<br><br><CENTER>');
$a = 0;
$handle = opendir("../photos");
while (($file = readdir())!=false)
{
for($x=1;$x<$nbphotos;$x++)
{
$chemin = "photo_$_GET[seminaire]_$x.jpg";
if($file!=".." && $file!="." && ereg($file,$chemin))
{
echo("<a href='#ejs_photo_box'><IMG SRC='../photos/mini_$file' onClick='ejs_aff_photos($a)'/></a> ");
$a++;
if($a%5==0)
{
echo("<br><br>");
}
}
}
}
closedir($handle);
echo("<br><br><DIV ID='ejs_photo_box' name></div>");
}
et le script :
<script type="text/javascript">
ejs_photo = new Array;
<?
$a = 0;
$handle = opendir("../photos");
while (($file = readdir())!=false)
{
for($x=1;$x<$nbphotos;$x++)
{
$chemin = "photo_$_GET[seminaire]_$x.jpg";
if($file!=".." && $file!="." && eregi($file,$chemin))
{
echo "ejs_photo[$a] = '../photos/$file';";
$a++;
}
}
}
closedir($handle);
?>
function ejs_aff_photos(num)
{
if(document.getElementById)
{
ejs_fin = "";
if(num!=0)
ejs_fin += "<A HREF=#ejs_photo_box onClick='ejs_aff_photos("+(num-1)+");return(false)'> Précédent <img src='../images/fleche_gauche.gif'/> </A>";
if(num!=(ejs_photo.length-1))
ejs_fin += "<A HREF=#ejs_photo_box onClick='ejs_aff_photos("+(num+1)+");return(false)'> <img src='../images/fleche_droite.gif'/> Suivant </A>";
document.getElementById("ejs_photo_box").innerHTML = "<CENTER><IMG SRC='"+ejs_photo[num]+"' BORDER=0 ><BR>"+ejs_fin+"</CENTER>";
}
}
window.onload = new Function("ejs_aff_photos(0)")
</script>
Je vais essayer d'être le plus clair possible.
Dans une page php, j'ai réalisé un diaporama.
Au dessus de ce diaporama, il y a toutes les photos contenues dans ce diaporama.
Elles sont affichées les unes à côté des autres.
Je souhaite, lorsque je clique sur l'un d'elle, aller sur mon diaporama.
J'utilise donc une ancre sur chacune des photos.
Malheureusement, quand je clique pour la première fois sur une photo qui n'a pas été encore visualisé,
mon ancre ne fonctionne pas et je reste au même endroit sur la page.
Second problème, sous mon diaporama, il y a les boutons "suivant" et "précédent".
Même soucis qu'avant, lorsque je clique sur l'un de ces boutons et que la photo suivante ou précédente n'a pas encore
été vu, je remonte dans ma page.
Voila le morceau de mon code :
if($nbphotos>0)
{
echo('<br/><IMG SRC="../images/puce2.gif" align="middle" id="photo"><B>Les photos :</B>');
echo('<br><br><CENTER>');
$a = 0;
$handle = opendir("../photos");
while (($file = readdir())!=false)
{
for($x=1;$x<$nbphotos;$x++)
{
$chemin = "photo_$_GET[seminaire]_$x.jpg";
if($file!=".." && $file!="." && ereg($file,$chemin))
{
echo("<a href='#ejs_photo_box'><IMG SRC='../photos/mini_$file' onClick='ejs_aff_photos($a)'/></a> ");
$a++;
if($a%5==0)
{
echo("<br><br>");
}
}
}
}
closedir($handle);
echo("<br><br><DIV ID='ejs_photo_box' name></div>");
}
et le script :
<script type="text/javascript">
ejs_photo = new Array;
<?
$a = 0;
$handle = opendir("../photos");
while (($file = readdir())!=false)
{
for($x=1;$x<$nbphotos;$x++)
{
$chemin = "photo_$_GET[seminaire]_$x.jpg";
if($file!=".." && $file!="." && eregi($file,$chemin))
{
echo "ejs_photo[$a] = '../photos/$file';";
$a++;
}
}
}
closedir($handle);
?>
function ejs_aff_photos(num)
{
if(document.getElementById)
{
ejs_fin = "";
if(num!=0)
ejs_fin += "<A HREF=#ejs_photo_box onClick='ejs_aff_photos("+(num-1)+");return(false)'> Précédent <img src='../images/fleche_gauche.gif'/> </A>";
if(num!=(ejs_photo.length-1))
ejs_fin += "<A HREF=#ejs_photo_box onClick='ejs_aff_photos("+(num+1)+");return(false)'> <img src='../images/fleche_droite.gif'/> Suivant </A>";
document.getElementById("ejs_photo_box").innerHTML = "<CENTER><IMG SRC='"+ejs_photo[num]+"' BORDER=0 ><BR>"+ejs_fin+"</CENTER>";
}
}
window.onload = new Function("ejs_aff_photos(0)")
</script>