Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1406 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Phrase aléatoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Phrase aléatoire

n°1989012
schnoqueur
Posté le 30-04-2010 à 11:11:00  profilanswer
 

Bonjour,
Le script suivant permet de générer une des 5 phrases au hasard :  
 

Code :
  1. <script>
  2. aleatoire=Math.floor(Math.random()*5)
  3. switch(aleatoire){
  4. case 0:document.write("phrase1" );break;
  5. case 1:document.write("phrase2" );break;
  6. case 2:document.write("phrase3" );break;
  7. case 3:document.write("phrase4" );break;
  8. case 4:document.write("phrase5" );break;
  9. }
  10. </script>


 
Le problème c'est que les phrases ne sont générées que lorsqu'on recharge la page. J'aimerai pouvoir mettre un bouton, et quand on clique dessus, une phrase se génère dans un rectangle. On peut ainsi générer plusieurs phrases sans avoir à recharger la page. Comment faire ?
 
J'aimerai aussi que pour chaque phrase, à droite du rectangle, apparaisse l'expression "cliquez-ici" qui renvoie vers une page liée à la phrase générée. Par exemple, la phrase1 renverra toujours vers le lien1, etc..
 
Voici une image qui expose le problème :  
 
http://img265.imageshack.us/img265/2142/captureeo.png
 
Merci  :jap:


---------------
Mon ancien feedback A/V : http://forum.hardware.fr/hfr/Achat [...] 3624_1.htm
mood
Publicité
Posté le 30-04-2010 à 11:11:00  profilanswer
 

n°1989018
David Bori​ng
Posté le 30-04-2010 à 11:26:51  profilanswer
 

Tu fais de ton script une fonction
Tu attaches un event sur le boutton "cliquez ici", qui lance la fonction
Dans ton case, tu dois changer l'atttribut href de ton lien.
 
Je te laisse faire le code tout seul  :)

n°1989047
schnoqueur
Posté le 30-04-2010 à 12:13:34  profilanswer
 

J'ai modifié le code et voilà ce que j'ai :  
 

Code :
  1. <script>
  2. function nombre_alea(id_ecrire){
  3. var nbr_ch=2;
  4. var x=Math.random();
  5. var nb=x*Math.pow(10,nbr_ch);
  6. nb_g=Math.round(nb);
  7. var obj=document.getElementById(id_ecrire);
  8. obj.value=nb_g;
  9. }
  10. </script>
  11. <input type="button" value="Nouvelle phrase" onClick="nombre_alea('phrase');">
  12. <input type="text" id="phrase">


 
Je n'arrive pas à faire correspondre des phrases, et encore moins les liens  :sweat:


Message édité par schnoqueur le 30-04-2010 à 12:14:24

---------------
Mon ancien feedback A/V : http://forum.hardware.fr/hfr/Achat [...] 3624_1.htm
n°1989192
David Bori​ng
Posté le 30-04-2010 à 16:21:06  profilanswer
 

Je ne comprends pas pourquoi tu as changé ta fonction.
Tiens, je t'ai fais un truc en vitesse
 

Code :
  1. <input type="button" value="Nouvelle phrase" onClick="populate();">
  2. <input type="text" value="" id="tt"/>
  3. <a href="" id="link">link</a>
  4. <script type="text/javascript" charset="utf-8">
  5. function populate () {
  6.     var obj=document.getElementById("tt" ),
  7.     link=document.getElementById("link" ),
  8.     aleatoire=Math.floor(Math.random()*5);
  9.     switch(aleatoire){
  10.     case 0:obj.value="phrase1";link.setAttribute("href","http://google.be" );break;
  11.     case 1:obj.value="phrase2";link.setAttribute("href","http://google.fr" );break;
  12.     case 2:obj.value="phrase3";link.setAttribute("href","http://google.com" );break;
  13.     case 3:obj.value="phrase4";link.setAttribute("href","http://google.de" );break;
  14.     case 4:obj.value="phrase5";link.setAttribute("href","http://google.cn" );break;
  15.     }
  16. }
  17. </script>


n°1989239
schnoqueur
Posté le 30-04-2010 à 18:20:35  profilanswer
 

Merci  :jap:  
 
J'ai une dernière question : est-il possible que le script aille chercher les phrases + lien dans un fichier .txt, afin de ne pas faire un script géant si j'ai beaucoup de phrases.

Message cité 1 fois
Message édité par schnoqueur le 30-04-2010 à 18:26:26

---------------
Mon ancien feedback A/V : http://forum.hardware.fr/hfr/Achat [...] 3624_1.htm
n°1989292
Ryoh
Posté le 30-04-2010 à 23:56:11  profilanswer
 

la réponse m'intéresse merci.
est-ce qu'on peut lire un fichier avec javascript ?

n°1989309
David Bori​ng
Posté le 01-05-2010 à 10:35:55  profilanswer
 

Un fichier texte (.txt) non.
Mais on peut lire du xml, ou mieux du json.
Mais pour faire cela, il est moins verbeux d'utiliser une librairie spécialisée.
 
Mais sinon, voilà le code avec un object qui contient les donnés.
C'est une bonne base pour rendre l'object externe sous forme de fichier json

Code :
  1. <input type="button" value="Nouvelle phrase" onClick="populate();">
  2.     <input type="text" value="" id="tt"/>
  3.     <a href="" id="link">link</a>
  4.     <script type="text/javascript" charset="utf-8">
  5.     var objTest = {"rand": [
  6.         {"txt": "texte 1",
  7.             "loc": "http://www.google.com",
  8.         },
  9.         {"txt": "texte 2",
  10.             "loc": "http://www.google.be",
  11.         },
  12.         {"txt": "texte 3",
  13.             "loc": "http://www.google.fr",
  14.         }
  15.         ],
  16.     };
  17.     function populate () {
  18.         var num=objTest.rand.length,// calcule nombre d'élément
  19.         obj=document.getElementById("tt" ),
  20.         link=document.getElementById("link" ),
  21.         al=Math.floor(Math.random()*num);
  22.         obj.value=objTest.rand[al].txt;
  23.         var pp=objTest.rand[al].loc;
  24.         link.setAttribute("href",pp );
  25.     }
  26.     </script>


n°1989314
gatsu35
Blablaté par Harko
Posté le 01-05-2010 à 11:12:23  profilanswer
 

David Boring a écrit :

Un fichier texte (.txt) non.
Mais on peut lire du xml, ou mieux du json.
Mais pour faire cela, il est moins verbeux d'utiliser une librairie spécialisée.
 
Mais sinon, voilà le code avec un object qui contient les donnés.
C'est une bonne base pour rendre l'object externe sous forme de fichier json

Code :
  1. <input type="button" value="Nouvelle phrase" onClick="populate();">
  2.     <input type="text" value="" id="tt"/>
  3.     <a href="" id="link">link</a>
  4.     <script type="text/javascript" charset="utf-8">
  5.     var objTest = {"rand": [
  6.         {"txt": "texte 1",
  7.             "loc": "http://www.google.com",
  8.         },
  9.         {"txt": "texte 2",
  10.             "loc": "http://www.google.be",
  11.         },
  12.         {"txt": "texte 3",
  13.             "loc": "http://www.google.fr",
  14.         }
  15.         ],
  16.     };
  17.     function populate () {
  18.         var num=objTest.rand.length,// calcule nombre d'élément
  19.         obj=document.getElementById("tt" ),
  20.         link=document.getElementById("link" ),
  21.         al=Math.floor(Math.random()*num);
  22.         obj.value=objTest.rand[al].txt;
  23.         var pp=objTest.rand[al].loc;
  24.         link.setAttribute("href",pp );
  25.     }
  26.     </script>




nan mais tu as vu ce que tu racontes là ? bien sur que oui on peut lire un fichier TXT c'est la base de la base.
Et ça serait le plus simple pour lui :mlc:


---------------
Blablaté par Harko
n°1989362
schnoqueur
Posté le 01-05-2010 à 18:27:15  profilanswer
 

gatsu35 a écrit :


nan mais tu as vu ce que tu racontes là ? bien sur que oui on peut lire un fichier TXT c'est la base de la base.
Et ça serait le plus simple pour lui :mlc:


 
Peux-tu nous dire comment ?  :D


---------------
Mon ancien feedback A/V : http://forum.hardware.fr/hfr/Achat [...] 3624_1.htm
n°1989609
David Bori​ng
Posté le 03-05-2010 à 10:24:33  profilanswer
 

gatsu35 a écrit :


nan mais tu as vu ce que tu racontes là ? bien sur que oui on peut lire un fichier TXT c'est la base de la base.
Et ça serait le plus simple pour lui :mlc:


 
Ha désolé d'avoir induit le foromeur en erreur.  
Je n'ai jamais travaillé avec des fichiers textes, je ne savais donc pas que c'était possible.
Tu aurais un bon tutorial ? et tu peux mettre des objects ou des arrays dedans ?

mood
Publicité
Posté le 03-05-2010 à 10:24:33  profilanswer
 

n°1989614
gatsu35
Blablaté par Harko
Posté le 03-05-2010 à 10:29:13  profilanswer
 

le resultat d'une requete ajax est du texte, donc tu peux faire ce que tu veux derrière


---------------
Blablaté par Harko
n°1989617
David Bori​ng
Posté le 03-05-2010 à 10:33:50  profilanswer
 

Tout simplement. Ok, merci

n°1989650
Ryoh
Posté le 03-05-2010 à 11:26:41  profilanswer
 

il faut un langage serveur ou pas ? et si je ne peux utiliser que javascript ?

n°2066999
romainV
Posté le 30-03-2011 à 01:32:08  profilanswer
 

Avant tout, désolé de déterrer un vieux post :jap:

schnoqueur a écrit :

Bonjour,
Le script suivant permet de générer une des 5 phrases au hasard : ...

Si tu veux varier un peu les plaisirs, j'ai un script qui permet lui aussi de générer des phrases au hasard (environ 10 puissance 78 phrases correctes et uniques)
(voir ici pour les curieux : générateur de phrases )

schnoqueur a écrit :

..., afin de ne pas faire un script géant si j'ai beaucoup de phrases.

heu... quel est le problème d'un script géant ? La lecture de nombreuses instructions imbriquées ou de frameworks empilés les uns sur les autres peuvent en effet ralentir ton site et poser un tas d'autres soucis, mais... pour du contenu littéral ? :??: Ca ne prend pas assez de performance pour qu'on s'en préoccupe outre mesure, surtout sur un petit outil ludique comme ça il me semble :jap:

Ryoh a écrit :

il faut un langage serveur ou pas ? et si je ne peux utiliser que javascript ?

Comme tu peux le constater, mon générateur ne fait appel qu'à du code client...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Phrase aléatoire

 

Sujets relatifs
Création d'un générateur d'exercices de calcul mental aléatoiretirage un mot aleatoire
Problème de crash sur codage aléatoireAfficher des images sur une page web de manière aléatoire.
generateur de variables pseudo aleatoireScript pour afficher des images de manière aléatoire: problèmes
Ouvrir une nouvelle page de facon aléatoireTirage aléatoire et incrémentation d'un nombrdans un tableau!!
image aléatoire dans background css[Affichage de grandes vignettes aléatoire]
Plus de sujets relatifs à : Phrase aléatoire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR