Integrer variable javascript dans input text
Fermé
moulesfrites
Messages postés
25
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
29 mai 2009
-
27 avril 2009 à 17:27
moulesfrites Messages postés 25 Date d'inscription mercredi 22 avril 2009 Statut Membre Dernière intervention 29 mai 2009 - 30 avril 2009 à 17:22
moulesfrites Messages postés 25 Date d'inscription mercredi 22 avril 2009 Statut Membre Dernière intervention 29 mai 2009 - 30 avril 2009 à 17:22
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)"/>';
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)"/>';
A voir également:
- Integrer variable javascript dans input text
- Intégrer une vidéo dans un powerpoint - Guide
- Telecharger javascript - Télécharger - Langages
- No video input ✓ - Forum Matériel & Système
- Input not supported - Forum Ecran
3 réponses
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
28 avril 2009 à 00:04
28 avril 2009 à 00:04
Bonsoir,
document.calcul.elements["calcul"+i] non?
document.calcul.elements["calcul"+i] non?
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
29 avril 2009 à 08:40
29 avril 2009 à 08:40
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)
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)
moulesfrites
Messages postés
25
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
29 mai 2009
29 avril 2009 à 12:36
29 avril 2009 à 12:36
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>
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>
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
>
moulesfrites
Messages postés
25
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
29 mai 2009
29 avril 2009 à 12:43
29 avril 2009 à 12: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.
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.
moulesfrites
Messages postés
25
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
29 mai 2009
>
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
30 avril 2009 à 17:22
30 avril 2009 à 17:22
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>
<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>
moulesfrites
Messages postés
25
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
29 mai 2009
29 avril 2009 à 11:23
29 avril 2009 à 11:23
non l'écriture n'est pas bonne, et le script est bloqué
28 avril 2009 à 22:37
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,...