Diaporama en JS

Résolu
Yaninho Messages postés 484 Date d'inscription   Statut Membre Dernière intervention   -  
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis en train de créer un diaporama en Javascript. En statique (avec les chemins des images en dur pas de soucis...). Mais dès que je veux passer en dynamique, c'est la galère.

Alors voici l'appel du script :
<div id="zone<?php echo $i; ?>">
									<script>ChangeImage(<?php echo $i; ?>, <?php echo $img1path; ?>, <?php echo $img2path; ?>, <?php echo $img3path; ?>, <?php echo $img4path; ?>);</script>
</div>


Et voici le script :
<script type="text/javascript">
<!--
	num = 0;
	function ChangeImage(id, img1, img2, img3, img4)
	{
		var couv = new Array(Array);
		couv[id][0] = img1;
		couv[id][1] = img2;
		couv[id][2] = img3;
		couv[id][3] = img4;
				
		if (num == -1) 
		{ 
			num = (couv.length-1);
		}
					
		if(document.getElementById)
		{
			document.getElementById("zone"+id).innerHTML =couv[id][num];
			num = num+1;
					
			if(num == 4)
			{
				num = 0;
			}
		}
					
	setTimeout("ChangeImage("+id+")", 2000);
	}
	// -->
</script>


Le problème étant que les images ne sont pas récupérées alors que les chemins sont bons, je pense que c'est les http:// qu'il voit comme un début de commentaires, mais j'ai déjà essayé plusieurs choses pour y remédier mais sans succès. Je débug avec Firebug et j'ai cette erreur:


missing ) after argument list
ChangeImage(76, http://www.saint-vaast-immobilier.com/images/no_image.gif, http://www.saint-vaast-immobilier.com/images/no_image.gif, http://www.saint-vaast-immobilier.com/images/no_image.gif, http://www.saint-vaast-immobilier.com/images/no_image.gif);

Si vous pouviez m'aider, ça serait cool ;)

7 réponses

jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
Il faut que tu rajoutes des ' quand tu passes des chaines de caractères à une fonction js :

<script>ChangeImage('<?php echo $i; ?>', '<?php echo $img1path; ?>', '<?php echo $img2path; ?>', '<?php echo $img3path; ?>', '<?php echo $img4path; ?>');</script>
0
Yaninho Messages postés 484 Date d'inscription   Statut Membre Dernière intervention   63
 
Bonjour Jeangilles,

Merci de ta réponse. Effectivement cela me corrige le souci annoncé. Cependant, un autre est apparu :D

Au lieu de m'afficher mes images, cela m'affiche "undefined".

Et firebug me donne une erreur : couv[id] is undefined
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
ta variable php $i est elle initialisée ?
sinon c'est normale que id soit undefined
0
Yaninho Messages postés 484 Date d'inscription   Statut Membre Dernière intervention   63
 
Oui oui, elle est bien définie. Dans le code source de la page j'ai bien des <div id="zone50"> par exemple.
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
et en faisant :
var couv = new Array(new Array('0','1','2','3'));

parce que le new Array(Array) m'inspire pas trop confiance :S
^^
0
Yaninho Messages postés 484 Date d'inscription   Statut Membre Dernière intervention   63
 
Pas mieux :S
L'erreur Firebug :
couv[id] is undefined
http://localhost/StVaastImmo/dev/biens.php
Line 17


La ligne 17 c'est :
couv[id][0] = img1;
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
et si tu fais

var couv = new Array();
couv[id] = new Array();
couv[id][0] = img1;
couv[id][1] = img2;
couv[id][2] = img3;
couv[id][3] = img4;
0
Yaninho Messages postés 484 Date d'inscription   Statut Membre Dernière intervention   63
 
Bien vu ;) Effectivement je n'ai plus l'erreur sur Firebug.

Mais cela n'affiche toujours pas l'image, j'ai donc voulu faire un alert("Image1 = "+img);

Donc cela "m'alerte" bien, mais bizarrement, en effet, quand je voit bien l'url mais quand je clique sur OK, il y a furtivement un Image1 = undefined qui apparait puis disparait....
0
Yaninho Messages postés 484 Date d'inscription   Statut Membre Dernière intervention   63 > Yaninho Messages postés 484 Date d'inscription   Statut Membre Dernière intervention  
 
En fait, c'est au rechargement de l'image qu'elle devient undefined...Comme si la variable img1 était détruite après le premier appel....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
ca viendrait pas de ton setTimeout("ChangeImage("+id+")", 2000); ?

normalement tu passes 5 arguments à ta fonction, et là qu'un seul
0
Yaninho Messages postés 484 Date d'inscription   Statut Membre Dernière intervention   63
 
Pffffffffffff j'avais même pas vu ça......Forcement au début, je ne lui passait que l'id pour les tests....

Merci!!

Une dernière chose si tu sais, la il m'affiche l'URL de l'image et non l'image elle-même, comment je peux faire ?
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
document.getElementById("zone"+id).innerHTML ='<img src="'+couv[id][num]+'">;

ou quelque chose dans le genre ^^
0
Yaninho Messages postés 484 Date d'inscription   Statut Membre Dernière intervention   63
 
Une fois de plus, chapeau! Merci beaucoup pour ton aide ;)

C'est toujours difficile de trouver ses propres erreurs! Merci encore ;)
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
De rien :)
0