Problème avec les ancres en php

WRInaute discret
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>&nbsp;&nbsp;&nbsp;&nbsp;");
$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'/>&nbsp;</A>";
if(num!=(ejs_photo.length-1))
ejs_fin += "<A HREF=#ejs_photo_box onClick='ejs_aff_photos("+(num+1)+");return(false)'>&nbsp;<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>
 
WRInaute passionné
Si c'est un problème d'ancre ça vient du HTML (bon après le HTML généré est peut être faux).

Ton code m'a l'air bien complexe pour pas grand chose. Là je vois peut être une raison :
le # du a entourant tes photos et une action onclick sur les photos.

Essais de voir si ton soucis viens du HTML (donc du PHP) ou du Javascript.
Et pense à utiliser les balises
Code:
 ;)
 
WRInaute discret
Et puis ce que je ne saisie pas, c'est pourquoi l'ancre fonctionne qu'a partir du deuxième visionnage de l'image ??
 
WRInaute passionné
Ca ne sert à rien de faire des up toutes les heures, ça n'ira pas plus vite, au contraire.
As tu débuggé? Sais tu quelle est vraiment le problème?

Mettre son code et dire "faites mon boulot" c'est pas ce qu'il y a de mieux pour motiver...
Après vu que tu n'as même pas de <a name="ejs_photo_box"> dans ta page ça risque d'être dur que ton ancre fonctionne...
 
WRInaute discret
Re bonjour tout le monde, désolé si j'exagère... je suis impatient :oops:

Je ne vois pas vraiment comment débugguer ce problème ? Peux-tu me dire comment faire car je ne vois pas de solution.
Après tu me dis que ça ne peut pas marcher sans <a name=.> mais désolé de te contredire que cela fonctionne très bien de faire un <a href=#ejs_box> et de mettre dans un div <div id=ejs_box> ....

Donc le problème ne vient pas de là...

Comme je le disais précédemment, mon ancre fonctionne à partir du deuxième clique... Est-ce que ça peut venir de la disposition de mon code !?!! Les photos n'étant pas chargées avant, le navigateur ne sait peut-etre pas ou aller ? Et lorsque le navigateur a chargé une première fois la photo, il les connait et donc peut si rendre.. ?

Merci encore
 
WRInaute discret
Pas de nouvelles idées, dommage..

Merci en tous cas à ceux qui ont lu mon probleme et essayer de m'y donner une solution.

FF
 
Discussions similaires
Haut