Creation de javascript dynamique ...

Signaler
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
-
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Voila il y a peu j'ai cherché une source qui permettait d'afficher avec une temporisation des images. J'ai donc cherché et trouvé ce code:
<html>
<head>
<title> Animation</title>
</head>

<!-- afficher la 1ere image -->

<script type="text/javascript">
<!--
// tableau de toute la sequence
var b = new Array();
b[0] = new Image(); b[0].src = "./img/01.jpg";
b[1] = new Image(); b[1].src = "./img/02.png";
b[2] = new Image(); b[2].src = "./img/03.jpg";
b[3] = new Image(); b[3].src = "./img/04.jpg";
var i = 0;
function Animation()
{
if(i > 3) i = 0;
document.images[0].src = b[i].src;
i = i + 1;
window.setTimeout("Animation()",2000);
//On affiche chaque image pendant 2s
}
document.images[0].src = b[0].src;
window.setTimeout("Animation()",2000);
//-->
</script>
</html>

mais je me suis dit que au lieu de modifier a chaque fois le fichier pour ajouter des images, j allais creer un petit script en php qui referait tout le code selon le nombre d images... donc je fais mon script mais ca ne marche pas et je vois pas pq car les sources sont similaires a l 'arrivée a part la disposition ou qqch qui m aurait échapé...

<?php
require_once ('./include/config.php');
/*config.php
$dir_directory="./img/";
$file="anim.html";
*/
echo "<center>Mise à jour des images</center>";
echo "<form method="post" action="creanim.php">";
$newcontent='';
if(is_dir ($dir_directory)){
$d = opendir($dir_directory);
while ($entry = readdir($d)){
if($entry != '..' && $entry !='.' && $entry!='Thumbs.db'){
$handle = fopen($file,'w+');
$newcontent=$newcontent.$entry.'~';
}
}
echo $newcontent.'
';
$contentexplode=explode('~',$newcontent);
echo $nbpics=count($contentexplode)-1;
echo "
";
fputs($handle, "<html><head></head><!-- afficher la 1ere image --><script type="text/javascript"><!--var b = new Array(); ");
for($i=0;$i<=$nbpics-1;$i++){
$pic=$dir_directory.$contentexplode[$i];
fputs($handle,"b[$i] = new Image(); b[$i].src = "$pic"; ");
} fputs($handle,"var i 0; function Animation() { if(i > $nbpics) i0; document.images[0].src=b[i].src; i=i+1; window.setTimeout("Animation()",2000); } document.images[0].src = b[0].src; window.setTimeout("Animation()",2000); //--></script></html>");
fclose($handle);
}
echo "</form>";
?>

Si qqun sait pourquoi ça ne fonctionne pas je suis preneur !
Merci!!!

-------------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

4 réponses

Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
juste une chose ... j ai laissé les balises form car je pensais en faire un formulaire pour le lancer par la suite mais ce n'est pas fait!


-------------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Hello,

je ne comprends pas ce que tu cherches à faire. Tes explications ne sont pas assez claires, me concernant.
Et explique aussi ce qui ne marche pas.
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
Bonjour!
En fait ce que je cherche a faire :
-utiliser le php pour creer un fichier html
-ecrire dans ce fichier du code afin de creer une animation(défilement d image)
-code dépendant des images présentes dans le dossier ./img

Ce qui fonctionne:
-creation du fichier html
-ecriture de code dynamique dans le fichier

Ce qui ne marche pas :
-Après avoir ecrit le code (qui depend du nombre d images et de leurs noms) le code semble juste (comme dans l exemple cité en premier) néanmois aucune image ne s'affiche. Lorsque j edite le fichier, le code ainsi créé tient en une ligne et lorque je remet en forme cette ligne (pour plus de lisibilité en appuyant du "entrée" pour bien voir les lignes) le code refonctionne. C'est comme si mon navigateur n'arrivait pas a interpreté du code sur une ligne même si il est correct. A moins que ca vienne d'autre chose mais je ne comprend pas.

Si qqun veut essayer ce script, il suffit de creer un dossier img a coté du script avec des images dedans et de lancer le script.


-------------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Ben mets le en forme à l'écriture alors, avec des \r\n à la fin de chaque instruction.