Choisir un nom au hazard et l'afficher dans une zone de texte

Signaler
Messages postés
12
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
3 juin 2010
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
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

Cordialement

17 réponses

Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
5
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;


et en html




et voilà.
[o-_-o]
Messages postés
12
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
3 juin 2010

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
Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
5
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).


[o-_-o]
Messages postés
12
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
3 juin 2010

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
Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
5
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...

oups sorry


[o-_-o]
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
13
Bonjour,
dans ta fonction
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;
  }
}
tu sors d'ou la variable aleatoire du switch ??

Regardes la console d'erreur il doit y en avoir...
;O)
Messages postés
12
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
3 juin 2010

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.

Si tu as une solution je suis preneur.

Merci Beaucoup
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
13
Bonjour,
ne serait ce pas la faute de frappe sur
var _elem = documet.getElementById("affectation");
il faut écrire
var _elem = document.getElementById("affectation")

tous ce qu'a écrit Zobibol reste néanmoins valable
si tu mets un alert( aleatoire), dans ta fonction, tu obtiens quoi comme valeur ?

il semble qu'il reste des points obscurs...
;O)
Messages postés
12
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
3 juin 2010

Bonsoir PetoleTeam

Retour sur les suites de mes péripéties à s'arracher les cheveux ^^

Concernant la faute de frape, cela avais déjà été fait car j'avais vu l'erreur et je l'avais modifier en ce sens.

Si je met alert( aleatoire) lorsque je clic sur le bouton il ne se passe rien du tout.

Je te remercie pour ton aide et d'avoir utilisé de ton temps pour mon soucis.

Amitiés chaleureuse
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
13
...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>


;O)
Messages postés
12
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
3 juin 2010

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.

Amitiés
Tat
Messages postés
12
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
3 juin 2010

re bonjour

j'ai eu une réponse qui fonctionne je vous la retransmet ici

<script type="text/javascript">
var tabprenom=new Array('prenom 1','prenom 2','prenom 3','prenom 4')
function aleatoire(){
var rand=Math.floor(Math.random()*4)
document.getElementById('affectation').value=tabprenom[rand]
}
</script>
</head>
 





Encore un tout grand merci pour votre aide.
Cordialement
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
13
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.

;O)
Messages postés
12
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
3 juin 2010

Bonjour,

MAlgré tout encore une fois vraiment merci pour tout ce que tu a fait pour moi,

Je vais passer ma page au validateur comme tu me la suggéré.

En attendant voici ce que j'obtiens avec ton code, j'ai beau cliqué rien ne se passe : page code

Et voici ce que j'ai avec son code : page code 2

Amitiés
Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
5
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.

voilà



[o-_-o]
Messages postés
12
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
3 juin 2010

Bonjour Zobibol

Je te remercie aussi pour ton aide que tu as apporté. et je vais voir cela pour firefox aussi

Amitiés chaleureuse
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
13
bien vu Zobibol, cela m'apprendra à tester ce que j'écris...
;O)