Rechercher : dans
Par :

Integrer variable javascript dans input text

Dernière réponse le 30 avr 2009 à 17:22:23 moulesfrites, le 27 avr 2009 à 17:27:34 
 Signaler ce message aux modérateurs

Bonjour,j'ai une fonction qui calcule une valeur contenue dans var n. Je voudrai intégrer cette valeur dans input text name="calcul'.$x.'" en boucle dans la fonction. On m'a conseillé d'utiliser eval mais ça ne marche pas. Qq aurait-il une autre piste... merci

function calculTotal(){
for (var i=0;i<=5;i++){
document.calcul.total.value = parseFloat(document.calcul.nbradulte.value) + Math.round(parseFloat(document.calcul.nbrenfant.value)/3);
var n = poidpiece[i] * document.calcul.total.value * Math.round(document.calcul.nombre1.value)/4000;
document.calcul.calcul1.value = n ; //c'est ici que ça coince je voudrai pouvoir faire document.calcul.calcul[i].value=n
}}
</script>
etc...
<td><?php $cal='<input size="2" name="calcul'.$x.'" value= '.$donnees['quantite'].' disabled="disabled" type="text" onkeypress="chiffres(event)"/>';

Configuration: Windows XP
Firefox 3.0.9

Meilleures réponses pour « integrer variable javascript dans input text » dans :
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
Javascript - Les événements VoirQu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...

1

NookZ, le 28 avr 2009 à 00:04:05

Bonsoir,

document.calcul.elements["calcul"+i] non?

Répondre à NookZ

2

moulesfrites, le 28 avr 2009 à 22:37:31

Bonjour nookz, merci pour la piste mais ce n'est pas encore la bonne
j'ai bouquiné et trouvé ceci mais ça ne marche pas non plus

var nomchamp='calcul'+i ;
instruction="document.formul."+nomchamp+".value" = r ;
eval(instruction) ;

en attendant d'avoir une solution je m'en suis sorti avec des

switch (i) // debut du switch
{ case 0 : var n = r * Math.round(document.formul.nombre.value)/4000 ;
document.formul.calcul.value = n ;
break; // ... et on sort du switch.
case 1 : var n = r * Math.round(document.formul.nombre1.value)/4000 ;
document.formul.calcul1.value = n ;
break; // ... et on sort du switch.
case 2: var n = r * Math.round(document.formul.nombre2.value)/4000 ;
document.formul.calcul2.value = n ;
break;
case 3 : var n = r * Math.round(document.formul.nombre3.value)/4000 ;
document.formul.calcul3.value = n ;
break; // ... et on sort du switch.

mais 25 case je n'aime pas beaucoup,...

Répondre à moulesfrites

3

NookZ, le 29 avr 2009 à 08:40:20

Bonjour,

J'ai repris et modifié légèrement ce que vous aviez trouvé
var nomchamp="calcul"+i ;
instruction="document.formul."+nomchamp+".value ="+ r ;
eval(instruction) ;

Je pense que ça marchera mieux (mais pas sûre)

Répondre à NookZ

5

moulesfrites, le 29 avr 2009 à 12:36:14

Voici ci-dessous le petit script ou j'ai tiré l'extrait suivant:

var nomchamp="calcul"+i ;
instruction="document.formul."+nomchamp+".value = r" ;
eval(instruction) ;


La solution est je pense dans ce script qui marche parfaitement, à condition de faire une boucle dans les input et de bien comprendre ce script, si tu si pouvais me le détailler ça m'aiderai sinon je referai un message merci

PS quand je modifie le nom de la fonction ça ne marche plus pourquoi...?

<html>
<head>
<title>Objets Array et Math</title>
<script language="JavaScript">
function tirage6numeros() {
var bontirage=new Array();
for(i=1;i<7;i++) {
bontirage[i]=i;
}
for(i=1;i<7;i++) {
nomchamp="boule"+i;
instruction="document.form1."+nomchamp+".value=bontirage[i]";
eval(instruction);
}}
</script>
</head>
<body>
<form name="form1" method="post" action="">
<input name="boule1" type="text" id="1" size="5" value="9"
<input name="boule2" type="text" id="2" size="5" value="9"
<input name="boule3" type="text" id="3" size="5" value="9"
<input name="boule4" type="text" id="4" size="5" value="9"
<input name="boule5" type="text" id="5" size="5" value="9"
<input name="boule6" type="text" id="6" size="5" value="9"
<input type="button" name="Submit" value="Tirage 6 numéros" onMouseMove="tirage6numeros()">
</form>
</body>
</html>

Répondre à moulesfrites

6

NookZ, le 29 avr 2009 à 12:43:43

Bon au vu du script j'ai vu que j'avais une erreur :
var nomchamp="calcul"+i ;
instruction="document.formul."+nomchamp+".value = r" ;
eval(instruction) ;

pour vous expliquer comment cela fonctionne, la fonction eval ci-dessus prend en paramètre une chaîne de caractères qu'elle interprète comme une instruction.
Par exemple :
var a = 1;
var b = 2;
eval("a = a +b ") ;

à la fin de l'eval la variable a sera égale à 3

donc dans votre cas il faut que dans la chaîne vous ayez "document.formul.calcul1.value = r" et que r ait une valeur pour que ça marche. Le + quand vous faîtes par exemple calcul+i concatène les deux chaînes, ce qui veut dire que vous avez bien document.formul.calcul1.value normalement dans la variable instruction.
Si ma nouvelle solution ne marche pas, ajoutez :
alert(instruction); avant le eval(instruction); comme ça on saura quelle chaîne de caractères est contenue dans la variable.

Répondre à NookZ

7

 moulesfrites, le 30 avr 2009 à 17:22:23

Ok merci pour tout j'ai modifié le script avec une boucle php et java script. A envoyer à tous ceux qui veulent modifier des POST text via javascript

<html>
<head>
<title>exemple de var javasript vers $ php en boucle</title>
<script language="JavaScript">
function numeros() {
var tableau=new Array();
for(i=0;i<7;i++) {
tableau[i]=i;}
for(i=0;i<7;i++) {
nomchamp="boule"+i;
instruction="document.form1."+nomchamp+".value=tableau[i]";
eval(instruction);
} }
</script>
</head>
<body>
<form name="form1" method="post" action="">
<?php $az='' ; $x='' ;
for($x=0;$x<7;$x++){
$az='<input size="2" name="boule'.$x.'" value="100" type="text" />' ;
echo $az ; } ?>
<input type="button" name="Submit" value="exemple de var javasript vers $ php en boucle" onMouseMove="numeros()">
</form>
</body>
</html>

Répondre à moulesfrites

4

moulesfrites, le 29 avr 2009 à 11:23:01

Non l'écriture n'est pas bonne, et le script est bloqué

Répondre à moulesfrites
Collection CommentÇaMarche.net