Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les 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
 
Inscription : juin 2009
Messages : 24
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 24
Points : 8
Points : 8
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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<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 00
Vieux 30/06/2009, 15h58   #2
Responsable JavaScript & AJAX
 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 436
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mars 2008
Messages : 2 436
Points : 4 886
Points : 4 886
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 00
Vieux 30/06/2009, 16h23   #3
Invité régulier
 
Inscription : juin 2009
Messages : 24
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 24
Points : 8
Points : 8
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 00
Vieux 30/06/2009, 17h10   #4
Expert Confirmé
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 500
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 500
Points : 3 953
Points : 3 953
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 :
>>> beta-test : générateur de phrases aléatoires (+ le générateur de sondages !)
>>> et pour les amateurs de labyrinthes...
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2009, 17h19   #5
Invité régulier
 
Inscription : juin 2009
Messages : 24
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 24
Points : 8
Points : 8
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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<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 00
Vieux 30/06/2009, 18h37   #6
Responsable JavaScript & AJAX
 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 436
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mars 2008
Messages : 2 436
Points : 4 886
Points : 4 886
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 00
Vieux 30/06/2009, 18h52   #7
Invité régulier
 
Inscription : juin 2009
Messages : 24
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 24
Points : 8
Points : 8
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 00
Vieux 30/06/2009, 18h59   #8
Responsable JavaScript & AJAX
 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 436
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mars 2008
Messages : 2 436
Points : 4 886
Points : 4 886
Code :
1
2
3
4
5
6
<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 00
Vieux 30/06/2009, 19h36   #9
Invité régulier
 
Inscription : juin 2009
Messages : 24
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 24
Points : 8
Points : 8
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 00
Vieux 30/06/2009, 19h40   #10
Responsable JavaScript & AJAX
 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 436
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mars 2008
Messages : 2 436
Points : 4 886
Points : 4 886
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 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 11h08.


 
 
 
 
Partenaires

Hébergement Web