Integrer variable javascript dans input text
moulesfrites
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
-
moulesfrites Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
moulesfrites Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
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
- Sms to text - Télécharger - Sauvegarde
- Telecharger javascript - Télécharger - Langages
- Input signal not found ✓ - Forum Matériel & Système
- Intégrer une liste déroulante dans excel - Guide
3 réponses
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)
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>
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.
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>
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,...