Javascript+image aléatoire
Résolu
Neliel
Messages postés
7012
Statut
Contributeur
-
Neliel Messages postés 7012 Statut Contributeur -
Neliel Messages postés 7012 Statut Contributeur -
Bonjour
Dans un script PHP, je dispose d'un tableau de chaînes de caractères contenant les chemins de toutes mes images.
Actuellement, sur la page principale de mon site local, j'affiche une image aléatoire à chaque chargement de la page à l'aide d'un script PHP.
J'aimerai, à la place, un script qui change l'image aléatoire toutes les x secondes, sans si possible charger la page entièrement.
Le PHP ne sachant pas faire ça, je me tourne vers le Javascript mais ce langage est un mystère pour moi.
Quelqu'un aurait-il, svp, un script javascript pouvant afficher une image aléatoire toutes les x secondes à partir d'une liste d'images contenu dans une variable PHP ?
Merci d'avance.
Dans un script PHP, je dispose d'un tableau de chaînes de caractères contenant les chemins de toutes mes images.
Actuellement, sur la page principale de mon site local, j'affiche une image aléatoire à chaque chargement de la page à l'aide d'un script PHP.
J'aimerai, à la place, un script qui change l'image aléatoire toutes les x secondes, sans si possible charger la page entièrement.
Le PHP ne sachant pas faire ça, je me tourne vers le Javascript mais ce langage est un mystère pour moi.
Quelqu'un aurait-il, svp, un script javascript pouvant afficher une image aléatoire toutes les x secondes à partir d'une liste d'images contenu dans une variable PHP ?
Merci d'avance.
A voir également:
- Javascript+image aléatoire
- Image iso - Guide
- Légender une image - Guide
- Reduire taille image - Guide
- Acronis true image - Télécharger - Sauvegarde
- Telecharger javascript - Télécharger - Langages
25 réponses
Woow balaise le code xD
je sais pas comment tu t'y prend..
tu aurais un url de test ?
voila un code qui fonctionne (meme avec des image sans extensions) ;)
Adns
je sais pas comment tu t'y prend..
tu aurais un url de test ?
voila un code qui fonctionne (meme avec des image sans extensions) ;)
<?php $arr = array(); $dirname = './smiley/'; $dir = opendir($dirname); while($file = readdir($dir)) { if($file != '.' && $file != '..' && !is_dir($dirname.$file)) { echo '<a href="'.$dirname.$file.'">'.$file.'</a>'; $arr[] = $dirname.$file; } } closedir($dir); //$arr = array ("el.png","hl.png","ajax.gif"); function php2js( $php_array, $js_array_name ) { // contrôle des parametres d'entrée if( !is_array( $php_array ) ) { trigger_error( "php2js() => 'array' attendu en parametre 1, '".gettype($array)."' fourni !?!"); return false; } if( !is_string( $js_array_name ) ) { trigger_error( "php2js() => 'string' attendu en parametre 2, '".gettype($array)."' fourni !?!"); return false; } // Création du tableau en JS $script_js = "var $js_array_name = new Array();\n"; // on rempli le tableau JS à partir des valeurs de son homologue PHP foreach( $php_array as $key => $value ) { // pouf, on tombe sur une dimension supplementaire if( is_array($value) ) { // On va demander la création d'un tableau JS temporaire $temp = uniqid('temp_'); // on lui choisi un nom bien barbare $t = php2js( $value, $temp ); // et on creer le script JS // En cas d'erreur, remonter l'info aux récursions supérieures if( $t===false ) return false; // Ajout du script de création du tableau JS temporaire $script_js.= $t; // puis on applique ce tableau temporaire à celui en cours de construction $script_js.= "{$js_array_name}['{$key}'] = {$temp};\n"; } // Si la clef est un entier, pas de guillemets elseif( is_int($key) ) $script_js.= "{$js_array_name}[{$key}] = '{$value}';\n"; // sinon avec les guillemets else $script_js.= "{$js_array_name}['{$key}'] = '{$value}';\n"; } // Et retourn le script JS return $script_js; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <script> <?php echo php2js($arr, 'tabImg'); ?> var temps = 2000; function changeImage(){ num = Math.floor(Math.random() * tabImg.length-1)+1; document.getElementById("img").src=tabImg[num]; setTimeout("changeImage()",temps); } </script> </head> <body onload="changeImage();"> <p class="titre"> </p> ... <img src="images/imagesParDefaut.png" id="img"> ... </body> </html>
Adns
Je code comme cela me vient... j'avoue que mes scripts sont souvent lourds.
Je vais essayé de remplacer mon script par le tiens car il a un double avantage.
1) Il va sans doute permettre de faire ce que je recherche.
2) Il va alléger mon script et le rendre peut-être plus rapide.
Je vais essayé de remplacer mon script par le tiens car il a un double avantage.
1) Il va sans doute permettre de faire ce que je recherche.
2) Il va alléger mon script et le rendre peut-être plus rapide.
J'ai modifié ton script pour récupérer les images parce qu'il récupère également les fichiers à la racine, ce que je ne veux pas...
$liste_repertoire_total = array(); $liste_image_total = array(); $rep_racine = './'; $cle_rep_racine = opendir($rep_racine); while($fichier = readdir($cle_rep_racine)) { if(is_dir($fichier) && $fichier!='.' && $fichier!='..') { $liste_repertoire_total[]=$rep_racine.$fichier; $cle_rep = opendir($rep_racine.$fichier); while($fichier_rep = readdir($cle_rep)) { if(!is_dir($fichier_rep) && $fichier_rep!='.' && $fichier_rep!='..' && $fichier_rep!='thumb.db') $liste_image_total[]=$rep_racine.$fichier."/".$fichier_rep; } } }
Non, toujours pas... j'ai le cadre en tout petit mais à priori, rien dedans.
J'ai pourtant entré ton code hormis la création de la liste qui est différente.
Ceci dit, tu as mis ce lien dans <img>, cette image doit-elle exister pour que cela fonctionne ?
images/imagesParDefaut.png
J'ai pourtant entré ton code hormis la création de la liste qui est différente.
Ceci dit, tu as mis ce lien dans <img>, cette image doit-elle exister pour que cela fonctionne ?
images/imagesParDefaut.png
J'utilise Firefox avec la barre developper.
Dans la console d'erreur, il y a deux erreurs:
Une flèche verte pointe entre ' et . de la chaîne
Dans la console d'erreur, il y a deux erreurs:
1. missing ; before statement http://127.0.0.1/Dark/collec.php Ligne: 9222 tabImg[9210] = './mi3 Tom's car/001.jpg';
Une flèche verte pointe entre ' et . de la chaîne
2. changeImage is not defined http://127.0.0.1/Dark/collec.php Ligne 1
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question