Image aleatoire

Fermé
lezefy1234 Messages postés 5 Date d'inscription jeudi 2 mai 2019 Statut Membre Dernière intervention 20 octobre 2019 - 20 oct. 2019 à 03:59
jordane45 Messages postés 38167 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 7 mai 2024 - 20 oct. 2019 à 10:19
salut à tous je viens auprès de vous aujourd'hui pour que vous m'aidiez à trouvez une solution un problème qui me taraude l'esprit depuis quelques mois
en effet j'ai une la lourde tache de coder un logiciel de parrainage entre niveaux 1(Filleuls) et niveau 2( parrains). j'ai quasiment fait la totalité mais l'essentiel me dépasse. je veux afficher des image aléatoire un peu dans le style des jeux de combats genre plusieurs images tourne (à la même place) et après on affiche une seule image et le processus se répète pour l'adversaire. j'ai essayé tous les codes(du moins ceux que j'ai eu à voir) et je n'obtient pas ce rendu. puis j'ai décidé de cogiter personnellement pour y arriver mais le résultat est que cela m'affiche toute les images et voici le code

<?php
//tableau qui contiendra toutes mes photos : 25
$table =array();
$i = 0;
for ($i=0; $i < 26 ; $i++) {
$table[$i]='img/parrain/'.$i.'.jpg'; // je rempli le tableau et concatène avec le répertoire+l'extension
}

$j = 0;
$r =0;
while ($j < 50) {
$r = rand(1,25); //je randomise 50 fois pour donner l'impression de défilement aléatoire

?>
<img src="<?php echo($table[$r]);?>" width ="250" height ="250">
<?php
$j++;
//j'affiche l'image choisi

}
//PROBLÈME : ça m'affiche 50 images randomisées au lieu d'une seule
?>


SVP Aidez moi je remet vie entre vos mains car de ce projet dépend mon avenir en tant que programmeur au sein de mon école.
MERCI D'AVANCE :-)
A voir également:

1 réponse

jordane45 Messages postés 38167 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 7 mai 2024 4 657
20 oct. 2019 à 09:49
Bonjour,

Le php s'exécute côté SERVEUR puis est envoyé au navigateur....

Ce que tu veux faire doit se traiter côté "CLIENT" ( dans le navigateur internet de l'utilisateur).
Pour cela, tu dois le faire en Javascript.


0
jordane45 Messages postés 38167 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 7 mai 2024 4 657
20 oct. 2019 à 10:19
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>TEST</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  </head>
  <body>
    <div class="dropdown">
      <img src="" id="parrainImg" width="80">
    </div>
    <script type="text/javascript">
    var nbImagesDirectory = 8; //je n'ai mis que 8 images dans mon dossier parrain
    var path = "./img/parrain/";
    var nbRand = 50; //nombre de fois qu'on doit faire le random
    var timo = 100; //temps entre chaque affichage
    
    var arrImages = []; //on rempli le tableau contenant la liste d'images
    for(var i=1;i<=nbImagesDirectory;i++){
      arrImages.push(i+'.jpg');
    }
    
    function randomImgDisplay(){
       //on tire une image aléatoirement parmis celles présentes dans mon array
        let imgToDisplay = getRandomImage(arrImages, path);
        //on affiche l'image en question
        document.getElementById('parrainImg').src = imgToDisplay;
        if(nbRand >0 ){
          
          //optionnel:
          if ( nbRand < 10 ){
            if ( nbRand < 40 ){
              timo = 300 ;  //si on approche des 4 dernières images...on ralentit encore un peu plus
            }else{
              timo = 200 ;  //si on approche des 10 dernières images...on ralentit un peu
            }
          }
          
          setTimeout(randomImgDisplay, timo);
          nbRand--; //on décrémente le compteur
        }
    }
    function getRandomImage(imgAr, path) {
        var num = Math.floor( Math.random() * imgAr.length );
        return img = path + "/" + imgAr[ num ];        
    }
    
    //on lance le script une première fois
    randomImgDisplay();
    
    </script>

  </body>
</html>

0