Choisir un nom au hazard et l'afficher dans une zone de texte
tatout54
Messages postés12Date d'inscriptionlundi 23 novembre 2009StatutMembreDernière intervention 3 juin 2010
-
1 juin 2010 à 10:41
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 2011
-
3 juin 2010 à 14:35
Bonjour,
Tout d abord toute mes excuses si je me suis trompé de rubrique, mais je ne suis qu'un simple débutant archi nul.
Voila mon soucis je début avec des petits script en javascript, et j'essaye de trouvé et comprendre la méthode qui fait que lorsque je clique sur un bouton ca doit piocher un nom au hasard et l'afficher dans une zone de texte.
J'arrive a tirer un nom au hasard super simple la n'est pas trop le soucis mais la ou je coince c'est que je ne sais pas comment l'afficher dans une zone de texte lorsque je clique sur un bouton.
Je suis vraiment un idiot à la matière dont je m'en excuses, j'essaie d'en apprendre plus sur le javascript.
Je vous remercie par avance chaleureusement pour l'aide et les éclaircissement que vous pourriez m'apporter
Zobibol
Messages postés469Date d'inscriptionmercredi 9 janvier 2002StatutMembreDernière intervention20 février 20176 1 juin 2010 à 16:08
Bonjour, ça aurait été sympas un peu de code mais bon.
on va admettre que le tirage au sort fonctionne.
en javascript:
var _value = résultat du tirage au sort.
// affecte le résultat de la valeur tirée au sort dans le contrôle ayant pour identifiant valueContent.
document.getElementById("valueContent").value = _value;
tatout54
Messages postés12Date d'inscriptionlundi 23 novembre 2009StatutMembreDernière intervention 3 juin 2010 1 juin 2010 à 16:57
Bonjour Zobibol
Toutes mes excuses pour ne pas avoir mis le code
Function aleatoire()
{
Switch(aleatoire){
case0:document.write("prenom1");break;
case1:document.write("prenom2");break;
case2:document.write("prenom3");break;
case3:document.write("prenom4");break;
}}
Et en htlm :
Lorsque je fait ceci: j'ai pour résultat lorsque je clique sur le bouton il charge une nouvelle page dans laquelle il écrit bien un nom pioché au hasard.
Seulement je ne veux pas qu'il s'affiche sur une nouvelle page mais bien dans la zone de texte au dessus du bouton.
Merci par avance et toute mes excuses pour cet oublis.
Cordialement
Zobibol
Messages postés469Date d'inscriptionmercredi 9 janvier 2002StatutMembreDernière intervention20 février 20176 1 juin 2010 à 17:04
Ha, merci pour ces précisions de taille.
document.write ("xxx") remplace le contenu de la page (mince alors).
donc, pour avoir le comportement désiré:
Function aleatoire()
{
var _elem = documet.getElementById("aleatoire");
Switch(aleatoire){
case0:_elem.value= "prenom1";break;
case1:_elem.value= "prenom2";break;
case2:_elem.value= "prenom3";break;
case3:_elem.value= "prenom4";break;
}}
et la, normalement, tout devrait bien ce passer.
Par contre petite remarque il y a une méthode qui s'appelle aleatoire et il semblerait une variable, voilà qui risque de provoquer des conflits (et je ne parle même pas de ce brave IE qui est un conflit à lui tout seul).
tatout54
Messages postés12Date d'inscriptionlundi 23 novembre 2009StatutMembreDernière intervention 3 juin 2010 1 juin 2010 à 17:52
Re bonjour Zobibol
Encore un tout grand merci pour ton aide et ta patience avec moi
Il doit bien y avoir un conflit comme tu le dis car j'ai fait comme tu me l'a si bien indiqué mais il ne se passe rien.
Rien de rien que me suggère tu dans ce cas pour avoir le même résultat ?
j'ai aussi remarqué ceci : [quote="Zobibol"]var _elem = documet.getElementById("aleatoire"); /quote Ne serait ce pas ceci à la place : document.getElementById("affectation") mais je me trompe peut être aussi vu mon ignorance complète, j'ai toujours essayé ais rien ne ce passe non plus.
Encore une fois un grand Merci
Cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Zobibol
Messages postés469Date d'inscriptionmercredi 9 janvier 2002StatutMembreDernière intervention20 février 20176 1 juin 2010 à 19:05
bon sang que je suis idiot, j'avais pas vu...
en effet, c'est bien le champ affectation qu'il faut prendre.
par contre je viens de remarqué:
Function en javascript n'a pas de F majuscule : function
ainsi que switch qui n'a pas de majuscule non plus
après il faudrait voir ce qu'il se passe dans la variable aleatoire.
Ensuite, je sèche...
tatout54
Messages postés12Date d'inscriptionlundi 23 novembre 2009StatutMembreDernière intervention 3 juin 2010 2 juin 2010 à 14:22
Bonjour PetroleTeam
Je ne sais si tu t'adresse à moi, mais moi j'avais ceci
Function aleatoire()
{
Switch(aleatoire){
case0:document.write("prenom1");break;
case1:document.write("prenom2");break;
case2:document.write("prenom3");break;
case3:document.write("prenom4");break;
}}
Et comme je l'ai dit cela fonctionne mais cela s'affiche sur une nouvelle page, et c'est pas ce que je désir mais bien dans la zone de texte au dessus du bouton.
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 2 juin 2010 à 22:08
...il ne se passe rien du tout. il se passe que le script plante!
essaies ceci
<html>
<head>
<script type="text/javascript">
//------------------
function aleatoire(){
//-- Recup. objet Destination
var O_Dest = document.getElementById('affectation');
//-- Declaration du tableau de messages
var T_Mess = [
'Message 1',
'Message 2',
'Message 3',
'Message 4'];
//-- Genere un nombre aleatoire fonction de la taille du tableau
var Num = Math.floor( Math.random() * szMess.length);
//-- Affecte le message
O_Dest.value = T_Mess[Num];
}
</script>
</head>
</html>
tatout54
Messages postés12Date d'inscriptionlundi 23 novembre 2009StatutMembreDernière intervention 3 juin 2010 2 juin 2010 à 23:26
Re bonsoir,
Toujours pareil sa plante alors car rien ne se passe, et j'ai l'impression de tourné en rond, car j'ai posté aussi sur d'autre forum voisin et collègue mais pareil toujours pas plus avancé avec cela.
je désespère même
Je te remercie chaleureusement pour tout ce mal que tu te donne pour m'aider.
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 3 juin 2010 à 13:07
Bonjour,
je ne vois pas de différence entre le code que je t'ai fourni et celui que l'on t'a fourni, à l'exception de la déclaration du type="text" omise dans l'INPUT affectation.
J'en conclu que le problème est visiblement ailleurs dans ta page, balise mal fermée, balise body en double ou que sais je encore duplication d'ID....
Il serait peut être intéressant que tu passes ta page au validateur W3C et que tu nous montre l'essentiel de celle ci.
Zobibol
Messages postés469Date d'inscriptionmercredi 9 janvier 2002StatutMembreDernière intervention20 février 20176 3 juin 2010 à 14:20
Je me permet de réintervenir (oui je suis comme ça ;o)
D'abord, bonjour
en fait il y a une erreur effectivement:
function aleatoire(){
//-- Recup. objet Destination
var O_Dest = document.getElementById('affectation');
//-- Declaration du tableau de messages
var T_Mess = [
'Message 1',
'Message 2',
'Message 3',
'Message 4'];
//-- Genere un nombre aleatoire fonction de la taille du tableau
var Num = Math.floor( Math.random() * szMess .length);
//-- Affecte le message
O_Dest.value = T_Mess[Num];
}
le coté en gras : szMess dois devenir T_Mess ...
et la, ça marche.
un petit truc sur firefox: installe firebug (une extension) elle indique très bien les erreurs.