11548 sujets

JavaScript, DOM et API Web HTML5

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 Smiley cligne
Modifié par Yaninho (18 May 2009 - 13:44)
Bonjour,

Une page en ligne, peut-être?

Le code HTML généré par le PHP est-il correct (conforme au fonctionnement que tu as défini pour ton diaporama)? Est-il valide?
Bonjour Florent,

Merci de ta réponse déjà Smiley cligne

Non désolé pas de pages en ligne.

Le code HTML généré est dans ce genre la :

ChangeImage(1,  http://www.saint-vaast-immobilier.com/images/offres/fiche/6_1_1.jpg,   http://www.saint-vaast-immobilier.com/images/offres/fiche/6_1_2.jpg,   http://www.saint-vaast-immobilier.com/images/offres/fiche/6_1_3.jpg,   http://www.saint-vaast-immobilier.com/images/offres/fiche/6_1_3.jpg);


Donc oui c'est conforme a ce que j'attendais car comme ça je passe mes images a la fonction JS qui doit (normalement) les faire défiler..
Bon en fait j'ai résolu le problème (avec l'aide de commentçamarche Smiley cligne )

Donc déjà à l'appel de la fonction, j'avais oublié de mettre des ' ' entre les <?php ?>

<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>


Ensuite ma déclaration du tableau n'était pas bonne. Enfin, au rafraichissement de la page, j'avais oublié de retourner les images Smiley rolleyes

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


Merci quand même de l'aide Smiley cligne