Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire Cours JavaScript, FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 30/06/2009, 15h53   #1
Invité régulier
 
Date d'inscription: juin 2009
Messages: 18
Par défaut Afficher une variable dans un formulaire.

Bonjours! Je cherche à récupérer un variable donnée calculée en javascript.
Ce sera plus clair si je l'explique avec le code:

Code :
<br>Maîtrise du combat: 
<input type="text" 
name="xp_maitrise_du_combat" 
id="xp_maitrise_du_combat" 
value="0" 
onKeyup="check1();">
//ici, on récupère la quantité d'Xp que le joueur dépense. La fonction check1 calcule en fonction de cet Xp combien le joueur acquiert de point de "maitrise de combat".
Xp= <span id="result_maitrise_du_combat"></span> 
//ici, on affiche la valeur calculée par check1 
 
<input type="hidden" 
name="maitrise_du_combat" 
value="result_maitrise_du_combat">
//ici, on est censé récupérer la valeur pour l'envoyer vers la page suivante. Les balises FORM sont omises sur ce bout de code, mais elle sotn présente sur le code entier.
 
<script type="text/javascript">
function check1() {
 var maitrise_du_combat = document.getElementById("xp_maitrise_du_combat").value;
 
var result_maitrise_du_combat = document.getElementById("result_maitrise_du_combat");
 
 result_maitrise_du_combat.innerHTML = maitrise_du_combat/500;
}</script>
 
Le problème est que la valeur n'est tout simplement pas récupérée par la seconde balise input. Quand je la change en type="text" pour voir ce qu'elle contient, on remarque que c'est "resultat_maitrise_du_combat" qui s'affiche et non sa valeur. Quelqu'un saurait comment y remédier?

Merci d'avance.
Snap luvs pastèque est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2009, 15h58   #2
Membre chevronné
 
Avatar de vermine
 
Date d'inscription: mars 2008
Messages: 651
Par défaut

Bonjour,

A aucun moment vous ne précisez qu'il faut changer la valeur du champ hidden appelé "maitrise_du_combat" .
vermine est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2009, 16h23   #3
Invité régulier
 
Date d'inscription: juin 2009
Messages: 18
Par défaut

Merci de me répondre=)
Et... comment pourrais-t-on faire pour faire changer cette valeur?
Snap luvs pastèque est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2009, 17h10   #4
Membre émérite
 
Avatar de RomainVALERI
 
Date d'inscription: avril 2008
Localisation: Nancy (54)
Âge: 33
Messages: 979
Par défaut

essaie d'affecter la valeur à value et non innerHTML (à la fin de check1)
__________________
Pour ceux qui s'ennuient ou qui ont envie de se changer les idées :
>>> essayez mon générateur de phrases aléatoires (attention : version IE/Opera non encore opérationnelle, utilisez un autre navigateur (FF, GoogleChrome, Safari, etc.) s'il vous plaît )

(un peu plus de (4.8 x 10 puissance 74) phrases possibles actuellement )

---
>>> ou entrez dans la spirale des labyrinthes... ^^ (duels entre joueurs, avec éditeur de labyrinthes intégré et moteur 3D très propre)(pour vous mesurer à moi, cherchez : "toshir0")
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2009, 17h19   #5
Invité régulier
 
Date d'inscription: juin 2009
Messages: 18
Par défaut

Voici ce que donne le code modifié (j'ai enlevé les commentaires pour gagner en lisibilité). Donc, si j'ai bien compris, c'est :
Code :
<br>Maîtrise du combat: 
<input type="text" 
name="xp_maitrise_du_combat" 
id="xp_maitrise_du_combat" 
value="0" 
onKeyup="check1();">
Xp= <span id="result_maitrise_du_combat"></span> 
<input type="text" 
name="maitrise_du_combat" 
value="result_maitrise_du_combat">
 
 
<script type="text/javascript">
function check1() {
 var maitrise_du_combat = document.getElementById("xp_maitrise_du_combat").value;
 
var result_maitrise_du_combat = document.getElementById("result_maitrise_du_combat");
 
 result_maitrise_du_combat.value = maitrise_du_combat/500;
}</script>
 
Apparemment, après test, le même problème se pose avec ce code-ci sauf qu'en plus le premier affichage ne marche plus.
Ou alors j'ai mal placé le .value?
Snap luvs pastèque est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2009, 18h37   #6
Membre chevronné
 
Avatar de vermine
 
Date d'inscription: mars 2008
Messages: 651
Par défaut

Je maintiens qu'à aucun moment vous ne précisez qu'il faut changer la valeur du champ hidden appelé "maitrise_du_combat" . Vous confondez le champ hidden dont le value ressemble à l'id du span. Pour le span, il faut faire un innerText, pas pour le champ hidden. Vous désirer affecter deux éléments mais vous n'en modifiez qu'un seul.
vermine est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2009, 18h52   #7
Invité régulier
 
Date d'inscription: juin 2009
Messages: 18
Par défaut

Merci, cependant quelques explication serait nécessaire sur deux points?
Citation:
Envoyé par vermine
Vous confondez le champ hidden dont le value ressemble à l'id du span.
La value du champ hidden doit justement être la même que celle qui apparait dans le span.
Citation:
Pour le span, il faut faire un innerText, pas pour le champ hidden.
Dans ce cas, que faut-il faire pour le champ hidden?
Citation:
Et pour être plus performant et correct, ce serait mieux de faire le document.getElementById sur... un id.
Ici, vous parlez bien d'attribuer un id au champ hidden? J'y ai pensé, mais étant donné qu'il faut que les valeurs soit identiques entre lui et le span, il faudrait leurs attribuer le même id, ce qui n'est pas (a ma connaissance) possible?
Snap luvs pastèque est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2009, 18h59   #8
Membre chevronné
 
Avatar de vermine
 
Date d'inscription: mars 2008
Messages: 651
Par défaut

Code :
<span id="result_maitrise_du_combat"></span> 
//ici, on affiche la valeur calculée par check1 
 
<input type="hidden" 
name="maitrise_du_combat" 
value="result_maitrise_du_combat">
Vous donnez comme valeur un joli petit texte à votre hidden. Celui qui apparait quand vous changez le hidden en text. Rien d'anormal à ce phénomène. Etiez-vous en train de penser qu'en précisant l'id du span dans le value du hidden, vous alliez lier le span et le hidden ? Hé bien non.

Chaque élément doit se voir affecter de sa valeur. Faire innerText pour le span, est une chose, mais il faut aussi faire un document.getElementById(...) du hidden car ce sont bel et bien deux éléments différents et ils n'ont aucun lien.
Alors oui, il faut donner un id au hidden. Et effectivement, il ne pourra pas s'agir du même que celui du span. Mais qu'importe, vu qu'on vient de comprendre qu'ils n'étaient pas lié. Vous pouvez donner l'id que vous voulez à votre hidden, et ensuite, lui affecter la même valeur (maitrise_du_combat/500) avec un .value comme vous l'avez utilisé dans votre deuxième tentative.
vermine est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2009, 19h36   #9
Invité régulier
 
Date d'inscription: juin 2009
Messages: 18
Par défaut

Ouais! Ca marche!
Super=) merci d'avoir pris le temps d'expliquer en détails.
Résolu!
Snap luvs pastèque est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2009, 19h40   #10
Membre chevronné
 
Avatar de vermine
 
Date d'inscription: mars 2008
Messages: 651
Par défaut

Au plaisir.
J'ai préféré ne pas donner de code et vous forcer à réfléchir un minimum à ce que vous aviez écrit. C'est ainsi qu'on apprend, pas en recopiant.
vermine est déconnecté   Envoyer un message privé Réponse avec citation
NEWS JAVASCRIPTF.A.Q JSTUTORIELS JSSOURCES JSLIVRES JS

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 01h01.


Vos questions techniques : forum d'entraide JavaScript - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.