JeuWeb - Crée ton jeu par navigateur

Version complète : Affichage d'une variable dans la page
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
bonjour les amis,

voila, je m arrache les cheveux avec un simple affichage de variables.
je selectionne deux valeurs, j 'en fais la somme dans une fonction JS
et je voudrais afficher le resultat.

mais j y arrive pas.... ( l affichage du resultat)

la fonction php du select:
Code :
<SELECT onChange='fonction_1(this.value)'>
<?php
for($i=-3;$i<21;$i++)
{
if ($i == 0) {$selection="selected";} else {$selection="";}
echo '<option '.$selection.' value='.$i.'>'.$i.'</option>';
}
?>
</SELECT>

<SELECT onChange='fonction_2(this.value)'>
<?php
for($i=-3;$i<21;$i++)
{
if ($i == 0) {$selection="selected";} else {$selection="";}
echo '<option '.$selection.' value='.$i.'>'.$i.'</option>';
}
?>
</SELECT>



les fonctions JS
Code :
function fonction_1(value)
{
var_1 = value;
fonction__somme_1_2();
}

function fonction_2(value)
{
var_2 = value;
fonction__somme_1_2();
}


function fonction__somme_1_2()
{
somme_1_2=((var_1)+(var_2)) ;
}

et le code de la page qui affiche:
Code :
<div id="resultat">
<script type="text/javascript">document.write(somme_1_2);</script></div id="resultat">

et la somme devrait changer dès que je change la valeur d'un select, comme dans une page que j ai fait.
mais j arrive pas à l 'exporter dans l autre site.

http://crom.celeonet.fr/fan07/


voila voila...

alors j ai pas mis tous les essais... mais bon j ai trituré dans tous les sens.
si vous avez une solution...

merci les amis.


eric
Une fois que tu as calculé ta somme, il faut encore modifier ton affichage, ce qui n'est pas le cas ici.

Ton document.write ne sera fait qu'au chargement de la page et pas à chaque changement d'une de tes 2 valeurs.
Comme le dit Belsion, ton document.write n'est évalué qu'au chargement de la page; du coup tu perds (presque) tout l'intérêt du javascript.

Apparemment il suffirait que tu remplace cette partie:
Code :
<div id="resultat"><script type="text/javascript">document.write(somme_1_2);</script></div id="resultat">

Par:
Code :
<div id="resultat"><script type="text/javascript"><span id="resultat_valeur"></span></script></div id="resultat">

Et la fonction js fonction__somme_1_2() par:
Code :
function fonction__somme_1_2()
{
document.getElementById('resultat_valeur').value=(var_1)+(var_2) ;
}
Ou un truc du genre. Comme ça, tu va remplacer la valeur de la balise d'id 'resultat_valeur' par ta somme. Après y'aurait peut-être moyen d'optimiser ton code js, mais je sais pas ce que tu fais par la suite; et tant que ça marche comme ça...
merci,

je pense que c est le bon chemin, je savais pas pour les span, ni qu on pouvait donner une valeur id dans une fonction javascript.

je m etais arreté à la valeur id dans la balise select.

on est sur la route...

mmais comme ca, ton code ne marche pas.
c est le getelementbyid dans la fonction js qui bloque...
je vais chercher pour voir s il y a une syntaxe differente...

merci pour votre reponse neanmoins!

eric
faut faire bien attention aux majuscules et minuscules, une seule erreur et il ne reconnaîtra pas la fonction: "getElementById"
Sinon pour le span, il me semble que c'est la propriété innerHTML qu'il faut utiliser

document.getElementById('resultat_valeur').innerHTML = (var_1)+(var_2)
value : pour les type du genre input de texte ect
innerhtml : entre des balises ( span, div ect )
Tout à fait...

* gobes court se pendre :toilette: (oui oui, je me noie en me pendant)
bon, en faisant le tour de plusieurs forums et en compilant les reponses, je suis arrivé a ceci qui marche:

le select marche bien

le js aussi:

<code>


function select_var1(value)
{
var var1=value;
fonction_somme();
}

function select_var2(value)
{
var var2=value;
fonction_somme();
}


somme="somme";
function fonction_somme()
{
document.getElementById(somme).innerHTML=var1 + var2;
}

</code>

et j affiche la somme dans un span dans l'html

<code>
<div id="resultat"><span id="somme"></span></div id="resultat">
</code>



et ca marche.

merci!!

eric
Si tout fonctionne, pensez au tag [RESOLU] devant le titre de votre sujet, merci !

Mysterarts