Soucis photo et légende aléatoire[javascript]

Résolu
Jearus8 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   -  
Jearus8 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un soucis, pour le boulot, je dois faire un site et dans une des pages, il y a un emplacement ou deux photos changent toute les deux secondes.
Jusque là pas de soucis, cependant, le soucis intervient quand j'essaye de faire correspondre pour chaque photo une légende contenue elle aussi dans la base de donnée!

Probléme, si les photos s'altérnent bien, la légende reste fixe..
Lapin comprendre!

mon code:

..récupération des info par une requete php et structure du document...

<script language="javascript">

var element= "img/<?php echo($image);?>";
var element2= "img/<?php echo($image2);?>";
var legende1= "<?php echo($legende1);?>";
var legende2= "<?php echo($legende2);?>";
var pic=new Array( "" , element , element2 ); // tableau des noms d'images
var lege=new Array( "" , legende1 , legende2 ); // tableau des noms d'images
var mis=new Array(2); // tableau des indicateurs 'image tirée'
for(i=1;i<3;i++) {mis[i]=0;} // Initialisation à zéro des indicateurs 'image déjà tirée'
total=0; // pour trouver rapidement la dernière image
for(i=1;i<2;i++) // on va boucler sur nombre d'images moins un
{ mis[i]=1+Math.round(Math.random()*1); // tirer aléatoirement un nombre dans mis(i)
trouve=0; // supposons que l'image ne soit pas encore tirée
for (j=1;j<i;j++) // voyons si cette image a été tirée
{if (mis[j]==mis[i]) {trouve=1;} } // si oui
if (trouve==1) {i=i-1;} // recommencer à tirer
if (trouve==0) {total=total+mis[i];} // sinon la compter
}
mis[2]=3-total;
var i=1+Math.round(Math.random()*1);
function change() // la fonction temporisée qui change d'image
{
document.pic.src=pic[mis[i]];
lege=lege[mis[i]];
i++;if(i>2){i=1;}
setTimeout("change()", 1000);// Toutes les 2 secondes
}
</script>
<body onLoad="change()">
<script>
document.write("<img name='pic'src='"+pic[mis[i]]+"' title='"+pic[mis[i]]+"'>");
document.write("legende : ");document.write(lege[i]);
</script>
</body>
</html>
A voir également:

2 réponses

Christounet Messages postés 1264 Date d'inscription   Statut Membre Dernière intervention   1 392
 
Bonjour,

Je pense que le code correct est le suivant
document.write("<img name='pic' alt='"+lege[i]+"' src='"+pic[mis[i]]+"' title='"+pic[mis[i]]+"'>");


Utilise alt pour indiquer ta légende qui sera affichée lorsque le curseur sera sur ta photo.

A plus
0
Jearus8 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour la rapidité,

mais j'aimerais bien que la légende apparaissent sous la photo..

Merci d'avance;)
0
Christounet Messages postés 1264 Date d'inscription   Statut Membre Dernière intervention   1 392
 
Bonjour,

Ok, dans ce cas-là le code devrait être le suivant
document.write("<img id='pic' src='"+pic[mis[i]]+"' title='"+pic[mis[i]]+"'>");
document.write("legende : <input type='text' id='lege' value='" + lege[i]+" readonly=1>");

et dans ta fonction change
document.photo.pic.src=pic[mis[i]];
document.photo.lege.value=lege[mis[i]]; 


Tu dois aussi ajouter après la balise <body> la balise suivante: <form name=photo> et avant la balise </body> la balise </form>

A plus
0
Jearus8 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup ça marche nickel!!!

Pour ma culture, comme ce fait-il que le commentaire ne tournait pas?!?

Est-ce l'utilisation du <form> qui résoud ce probléme?

Merci encore ;)
0
Christounet Messages postés 1264 Date d'inscription   Statut Membre Dernière intervention   1 392 > Jearus8 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
De rien, le forum est là pour çà.

Concernant ta question, ta légende était du texte fixe dans le code html de ta page, le fait d'avoir utilisé la balise <input> permet de changer la valeur de cette zone dynamiquement à condition que la balise soit comprise entre <form> et </form>.

A plus

PS: N'oublie pas d'indiquer que le problème est résolu
0
Jearus8 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   > Christounet Messages postés 1264 Date d'inscription   Statut Membre Dernière intervention  
 
OK,

merci pour l'info, c'est trés bon à savoir ça ;)

Bonne continuation.
0