Salut tout le monde.

J'ai actuellement un soucis au niveau du développement d'un site web. Je le code en grande partie à l'aide de PHP, une base de donnée mysql existe aussi et je vais piocher ses données avec du php.

Je possède une bannière animée faite en Javascript. Mon niveau en javascript étant assez bas, je me suis débrouiller et j'ai réussi à faire quelque chose de correct, une bannière qui fait défiler des images.

Cependant, le nom de ces dites-images se trouvent dans la base de donnée et j'ai remarqué qu'il est impossible d'utiliser une boucle while en php afin de créer des lignes de code dynamique en javascript comme ceci :


imagearray: [
<?php
          while ($row_ebanfr = mysql_fetch_assoc($res_ebanfr)){
                    echo '["images/fr/ban/'.$row_ebanfr['eban_fr'].'", "pdf/fr/'.$row_ebanfr['pdf_fr'].'", "", ""],';				
          }
?>
],


Or j'ai beau regarder le code source qui est ressort et il est parfait :


imagearray: [
["images/fr/ban/e_ww.jpg", "pdf/fr/ww.pdf", "", ""],
["images/fr/ban/e_xx.jpg", "pdf/fr/xx.pdf", "", ""],
["images/fr/ban/e_yy.jpg", "pdf/fr/yy.pdf", "", ""],
["images/fr/ban/e_zz.jpg", "pdf/fr/zz.pdf", "", ""],	],



Et pourtant ma bannière animée ne s'affiche plus, ou en tout cas rien ne défile, tout est blanc.

Petite présicsion : si je place ces lignes de codes gérées par php dynamiquement directement dans mon script javascript, ça marche.

Je pense que c'est un problème d'incompatibilité au niveau côté client (js) et serveur (php) qui ne peuvent pas se lire ? Si c'est le cas, avez-vous un moyen d'accéder à des données d'une base de donnée mysql avec javascript et de générer le même code du dessus ?

Merci beaucoup pour votre aide ! Smiley cligne
Modifié par Versidue (07 May 2013 - 13:51)
Bonjour Versidue,

Il est possible de créer des lignes de codes javascripts avec php..

Pourrais-tu fournir une adresse ou plus de codes pour mieux comprendre ton problème?
Merci pour la virgule.
Pour en revenir à mon problème, j'ai ce code là qui marche parfaitement et c'est le résultat auquel je dois arriver à sortir avec mon echo php :


var mygallery=new simpleGallery({
	wrapperid: "simplegallery1",
	dimensions: [842, 282],
	imagearray: [
		["images/ww.png", "pdf/fr/ww.pdf", "", ""],
		["images/xx.png", "pdf/fr/xx.pdf", "", ""],
		["images/yy.png", "pdf/fr/yy.pdf", "", ""],
		["images/zz.png", "pdf/fr/zz.pdf", "", ""]
	],
	
	autoplay: [true, 2500, 100],
	persist: false,
	fadeduration: 2000
}


Or, j'ai beau utiliser ce code qui me sort exactement le même code que celui ci-dessus (pour le imagearray) :


imagearray: [
<?php
      while ($row_ebanfr = mysql_fetch_assoc($res_ebanfr)){
           echo '["images/fr/ban/'.$row_ebanfr['eban_fr'].'", "pdf/fr/'.$row_ebanfr['pdf_fr'].'", "", ""],';				
      }
 ?>
],


Et pourtant, l'animation disparaît avec le code généré en PHP, j'ai beau sortir le même code avec mon echo, rien n'y fait.
J'ai finis par trouver la solution que je vais vous dévoiler.
En fait, je ne sais pas pourquoi mais il ne faut surtout pas toucher à la "mise en page" du code javascript si on fait du php dedans. Du coup, on obtient un truc comme ceci qui fonctionne :


imagearray: [ <?php while($row_ban_fr = mysql_fetch_assoc($res_ebanfr)){ ?>
		["images/fr/ban/<?php echo $row_ban_fr['eban_fr']; ?>", "pdf/fr/<?php echo $row_ban_fr['pdf_fr']; ?>", "", ""], <?php } ?>
	],


Alors que ce code ci ne fonctionnera pas :


imagearray: [
<?php
          while ($row_ebanfr = mysql_fetch_assoc($res_ebanfr)){
                    echo '["images/fr/ban/'.$row_ebanfr['eban_fr'].'", "pdf/fr/'.$row_ebanfr['pdf_fr'].'", "", ""],';				
          }
?>
],


C'est vraiment une prise de tête... Merci quand même.