DIAPORAMA ALÉATOIRE AVEC TIMER

seufseuf Messages postés 18 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 12 octobre 2009 - 10 oct. 2009 à 21:50
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 12 oct. 2009 à 22:30
Bonjour à tous,
Je viens de terminer mon site en php (www.sophiedemay.com) et il y a beaucoup de connaissances qui me manquent encore.
Je cherche à faire un diaporama aléatoire, qui changerait d'image toutes les 5 secondes.
Je me suis basée sur le code que j'ai mis en place pour ma page d'accueil (image qui change à chaque chargement de la page).
Mais je ne sais pas comment intégrer la fonction "timer" dans mon code.
Est-ce que quelqu'un aurait une idée?
Merci beaucoup,
A bientôt,
Sophie


------------------------------------------
Ci-après, le code que jai écrit et qui marche, mais sans le timer (je dois recharger la page pour que l'image change):

<?php

/* RECUPERE LA LISTE DES IMAGES ALEATOIRES : /imgs/aleatoire*/
$files = array();
$dir = opendir("imgs/process/");
while(($file = readdir($dir)) !== false)
{
if($file !== '.' && $file !== '..' && !is_dir($file) && $file !=='.DS_Store' && $file !=='.BridgeSort' && $file !=='_notes')
{
$files[] = $file;
//break;
}
}
closedir($dir);
shuffle($files);

/* Affiche la liste des fichiers */
echo
"\".
\" ----
\".
\" ".
"
".
", \".
\"\".
"
";

?>

31 réponses

seufseuf Messages postés 18 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 12 octobre 2009
12 oct. 2009 à 21:05
aaaaaaah non n'importe quoi ca marche, mais je crois que les images sont fixes ^^
0
seufseuf Messages postés 18 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 12 octobre 2009
12 oct. 2009 à 21:06
Je m'en suis rendue compte avant d'avoir ton mail (OUF, l'honneur est sauf)
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
12 oct. 2009 à 21:07
Bon j'ai déjà gagné ma première pinte... faut régler cette histoire de timer... Je termine de répondre à Jack et je fais des tests en local, pour voir quoi ça donne...

Je te tiens au courant, à tout de suite, ne pars pas en courant.

--
Neige

N'hésitez pas à lire la doc
0
seufseuf Messages postés 18 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 12 octobre 2009
12 oct. 2009 à 21:10
;-)
J'ai essayé 10/100/1000
Rouge sur rouge
rien ne bouge
0

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

Posez votre question
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
12 oct. 2009 à 21:25
Si je te dis que j'ai réussi chez moi, tu me ramènes une bonne bière irlandaise à l'occasion ?

Bon alors ça pouvait pas marcher, parce que depuis un moment, on focalisait sur l'affichage de l'image aléatoire parmi le dossier... Bon, fallait pas oublier de mettre un div autour de l'image :)

Reprenons le code de random_image.php :
<?php
$images = glob('imgs/process/*.*');
$random_image = $images[array_rand($images)];
echo '

';
?>


Rappel : dans le script JS, on avait utilisé setInterval : je crois que la majuscule est importante, quand on met dans les balises [ code ] ça vire les majuscules, donc faut la remettre...

Et voilà, chez moi, ça fonctionne... Tu voulais toutes les 5 secondes, il faut donc mettre 5000 à la place de 10000.

P.S. : faut pas croire que je sois alcoolique, hein, mais j'aime bien les bonnes bières, artisanales, non stérilisées refermentées en bouteille, plutôt ambrées voire stout...


--
Neige

N'hésitez pas à lire la doc
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
12 oct. 2009 à 21:26
Mince, ça veut dire que si le problème est réglé, tu vas plus poster !

Oublie pas ma bière, hein ;)

--
Neige

N'hésitez pas à lire la doc
0
seufseuf Messages postés 18 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 12 octobre 2009
12 oct. 2009 à 21:56
Neige,
mon dieu,
Je crois que ça ne marche pas ????
Comment est-ce possible ?

J'ai remis la Maj, tu as raison, il ne reconnaissait pas la fonction.
J'ai mis une seconde pour être sure de ne pas louper le changement d'image...

PS: Je suis a Londres en ce moment = tu connais la bière "Porter" ?
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
12 oct. 2009 à 22:14
Rhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

T'as pas le droit de dire que ça marche pas !! (parce que c'est moi qui décide)

Bon alors reprenons... Sur mon pc, j'ai recréé le même environnement que sur ton serveur, à savoir :
- j'ai recréé l'arborescence des images : imgs/process/000.JPG et 001.JPG et 002.jpg
- j'ai placé jquery dans un répertoire global à la racine du site
- j'ai un fichier test.php qui affiche pas grand chose, du HTML pour faire propre, avec le JS et qui inclut, inclus, inclue appelle le fichier random_image.php grâce à la fonction include (heureusement que je manie bien les périphrases !)
- j'ai un fichier random_image.php à la racine du site, au même niveau que test.php

Voici le contenu du bazar...
test.php (je ne mets qu'entre les balises body, le reste c'est de la fioriture pour faire du html valide)
<script type="text/javascript" src="/global/jquery-1.3.2.min.js"></script> 
<script type="text/javascript">
setInterval(function() {
$("#random-image").load('/random_image.php');
}, 2000);
</script>
<?php include('random_image.php'); ?>

Avec une majuscule dans setInterval

random_image.php (présenté au public pour la première fois dans son intégralité non censurée)
<?php
$images = glob('imgs/process/*.*');
$random_image = $images[array_rand($images)];
echo '

';
?>


Attention, subtile nuance (parce que sinon c'eut été bien trop aisé, tu comprends) :
- l'id du div, chez moi, est random-image avec un tiret,
- le nom du fichier est random_image.php avec un trait de soulignement (histoire de bien embrouiller, mais on peut mettre un trait de soulignement partout si on préfère l'uniformité et la rigueur militaire (mais non, je suis pas traumatisé))

Conclusion, comme ça, ça fonctionne... Alors, qu'est-ce que j'ai fait que t'as pas fait ? ou l'inverse... !

P.S. : Ah ben c'est une bonne occasion si t'es à Londres :) (je tentais au cas où, c'est bien tombé !) Donc non, je ne connais pas cette bière... ;) (non mais j'ai pas honte de réclamer des cadeaux comme ça moi ? )

--
Neige

N'hésitez pas à lire la doc
0
seufseuf Messages postés 18 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 12 octobre 2009
12 oct. 2009 à 22:24
oooooooooooooooo
Ca marche!!!!!!!!!


Give me your email
(et après on peut delete le post non ?)
0
seufseuf Messages postés 18 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 12 octobre 2009
12 oct. 2009 à 22:25
THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
12 oct. 2009 à 22:30
Nan, on peut pas supprimer les posts... On peut même pas éditer... Et en plus, il bouffe les majuscules dans ls codes... Non, je suis pas aigri :)

Je t'envoie un mail pour que tu aies mon mail ? Parce que du coup, ton adresse email à toi, elle est assez facile à trouver (t'as pas arrêté de laisser traîner l'adresse de ton site aussi, faut assumer !)

--
Neige

N'hésitez pas à lire la doc
0
Rejoignez-nous