Hors à priori une zone texte HTML ne peux pas avoir un nom de forme tableau
: document.form_commande.T[1].value n'est pas possible. Seul un nom constant
de type document.form_commande.T1.value est possible
Y a t'il une alternative pour pointer un nombre varaible de zone avec un
pointeur ??? Rien trouvé sur le web ni dans mes bouqins ...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
SAM
Salut à tous
Je voudrait lire / ecrire des Zones Texte HTML avec des noms de type tableau[i] par exemple qui permettent des calcules traitables par boucle
<script type="text/javascript">
function calc(num1, num2, op) { num1 = num1*1; num2 = num2*1; var num = op==1? num1*num2 : num1+num2; return Math.round(num*100)/100; }
function calcul() { var total = 0, Arts = 0, P, Q, E; // Hop! les rangées des commandes du tableau var T = document.getElementById('tabl'); T = T.getElementsByTagName('TBODY')[0]; T = T.getElementsByTagName('TR'); // boucle sur ces rangées for(var i=0; i<T.length; i++) { // hop! les cellules de la rangée : P = T[i].getElementsByTagName('TD'); // hop! la quantité : Q = P[2].getElementsByTagName('INPUT')[0].value; // si quantité alors calcul et affichage rangée if(Q != '' && Q.length>0) { Q = Q.replace(',','.')*1; // conversion chiffre Fr->US E = calc(P[1].innerHTML.replace(',','.'), Q, 1); total += E; Arts += Q; P[3].innerHTML = E.toString().replace('.',',') + ' Euros'; } } // la partie résultats // si y a qque chose commandé if(Arts >0 ) { // les rangées du tFoot T = document.getElementById('tabl'); T = T.getElementsByTagName('TFOOT')[0]; T = T.getElementsByTagName('TR'); E = T[0].getElementsByTagName('TH')[1]; E.innerHTML = calc(total, 1, 1).toString().replace('.',',') + ' Euros'; P = T[1].getElementsByTagName('TD'); P[2].innerHTML = Arts; Q = calc(Arts, P[1].innerHTML.replace(',','.'), 1); P[3].innerHTML = Q.toString().replace('.',',') + ' Euros'; E = T[2].getElementsByTagName('TH')[1]; E.innerHTML = calc(total, Q, 2).toString().replace('.',',') + ' Euros'; return true; } return false; }
function RAZ() { var T = document.getElementById('tabl'); T = T.getElementsByTagName('TBODY')[0]; T = T.getElementsByTagName('TR'); for(var i=0; i<T.length; i++) { T[i].getElementsByTagName('TD')[3].innerHTML = ''; } T = document.getElementById('tabl'); T = T.getElementsByTagName('TFOOT')[0]; T = T.getElementsByTagName('TR'); T[0].getElementsByTagName('TH')[1].innerHTML = ''; T[2].getElementsByTagName('TH')[1].innerHTML = ''; T = T[1].getElementsByTagName('TD') T[3].innerHTML = T[2].innerHTML = ''; return false; } </script> <style type="text/css"> table { empty-cells: show } table td input { width: 30px } </style> </head> <body>
Hors à priori une zone texte HTML ne peux pas avoir un nom de forme tableau : document.form_commande.T[1].value n'est pas possible. Seul un nom constant de type document.form_commande.T1.value est possible
si on préfère avec les ID :
var num1 = num2 = total = num = articles = 0, T; var TR = document.form_commande.getElementsByTagName('TR'); for(var i=1; i<TR.length-3; i++) { num1 = document.getElementById('Q_'+i).value*1; // ou : // num1 = document.form_commande['Q_'+i].value*1; num2 = document.getElementById('P_'+i).innerHTML.replace(',','.')*1; num = Math.round(num1*num2*100)/100; total += num; articles += num1; T = document.getElementById('T_'+i); T.innerHTML = num.toString.replace('.',',')+' euros'; }
Y a t'il une alternative pour pointer un nombre varaible de zone avec un pointeur ???
le nombre variable sera le nombre de TR
-- sm
Salut à tous
Je voudrait lire / ecrire des Zones Texte HTML avec des noms de type
tableau[i] par exemple qui permettent des calcules traitables par boucle
<script type="text/javascript">
function calc(num1, num2, op) {
num1 = num1*1;
num2 = num2*1;
var num = op==1? num1*num2 : num1+num2;
return Math.round(num*100)/100;
}
function calcul() {
var total = 0, Arts = 0, P, Q, E;
// Hop! les rangées des commandes du tableau
var T = document.getElementById('tabl');
T = T.getElementsByTagName('TBODY')[0];
T = T.getElementsByTagName('TR');
// boucle sur ces rangées
for(var i=0; i<T.length; i++) {
// hop! les cellules de la rangée :
P = T[i].getElementsByTagName('TD');
// hop! la quantité :
Q = P[2].getElementsByTagName('INPUT')[0].value;
// si quantité alors calcul et affichage rangée
if(Q != '' && Q.length>0) {
Q = Q.replace(',','.')*1; // conversion chiffre Fr->US
E = calc(P[1].innerHTML.replace(',','.'), Q, 1);
total += E;
Arts += Q;
P[3].innerHTML = E.toString().replace('.',',') + ' Euros';
}
}
// la partie résultats
// si y a qque chose commandé
if(Arts >0 ) {
// les rangées du tFoot
T = document.getElementById('tabl');
T = T.getElementsByTagName('TFOOT')[0];
T = T.getElementsByTagName('TR');
E = T[0].getElementsByTagName('TH')[1];
E.innerHTML = calc(total, 1, 1).toString().replace('.',',') +
' Euros';
P = T[1].getElementsByTagName('TD');
P[2].innerHTML = Arts;
Q = calc(Arts, P[1].innerHTML.replace(',','.'), 1);
P[3].innerHTML = Q.toString().replace('.',',') + ' Euros';
E = T[2].getElementsByTagName('TH')[1];
E.innerHTML = calc(total, Q, 2).toString().replace('.',',') +
' Euros';
return true;
}
return false;
}
function RAZ() {
var T = document.getElementById('tabl');
T = T.getElementsByTagName('TBODY')[0];
T = T.getElementsByTagName('TR');
for(var i=0; i<T.length; i++) {
T[i].getElementsByTagName('TD')[3].innerHTML = '';
}
T = document.getElementById('tabl');
T = T.getElementsByTagName('TFOOT')[0];
T = T.getElementsByTagName('TR');
T[0].getElementsByTagName('TH')[1].innerHTML = '';
T[2].getElementsByTagName('TH')[1].innerHTML = '';
T = T[1].getElementsByTagName('TD')
T[3].innerHTML = T[2].innerHTML = '';
return false;
}
</script>
<style type="text/css">
table { empty-cells: show }
table td input { width: 30px }
</style>
</head>
<body>
Hors à priori une zone texte HTML ne peux pas avoir un nom de forme tableau
: document.form_commande.T[1].value n'est pas possible. Seul un nom constant
de type document.form_commande.T1.value est possible
si on préfère avec les ID :
var num1 = num2 = total = num = articles = 0, T;
var TR = document.form_commande.getElementsByTagName('TR');
for(var i=1; i<TR.length-3; i++) {
num1 = document.getElementById('Q_'+i).value*1;
// ou :
// num1 = document.form_commande['Q_'+i].value*1;
num2 = document.getElementById('P_'+i).innerHTML.replace(',','.')*1;
num = Math.round(num1*num2*100)/100;
total += num;
articles += num1;
T = document.getElementById('T_'+i);
T.innerHTML = num.toString.replace('.',',')+' euros';
}
Je voudrait lire / ecrire des Zones Texte HTML avec des noms de type tableau[i] par exemple qui permettent des calcules traitables par boucle
<script type="text/javascript">
function calc(num1, num2, op) { num1 = num1*1; num2 = num2*1; var num = op==1? num1*num2 : num1+num2; return Math.round(num*100)/100; }
function calcul() { var total = 0, Arts = 0, P, Q, E; // Hop! les rangées des commandes du tableau var T = document.getElementById('tabl'); T = T.getElementsByTagName('TBODY')[0]; T = T.getElementsByTagName('TR'); // boucle sur ces rangées for(var i=0; i<T.length; i++) { // hop! les cellules de la rangée : P = T[i].getElementsByTagName('TD'); // hop! la quantité : Q = P[2].getElementsByTagName('INPUT')[0].value; // si quantité alors calcul et affichage rangée if(Q != '' && Q.length>0) { Q = Q.replace(',','.')*1; // conversion chiffre Fr->US E = calc(P[1].innerHTML.replace(',','.'), Q, 1); total += E; Arts += Q; P[3].innerHTML = E.toString().replace('.',',') + ' Euros'; } } // la partie résultats // si y a qque chose commandé if(Arts >0 ) { // les rangées du tFoot T = document.getElementById('tabl'); T = T.getElementsByTagName('TFOOT')[0]; T = T.getElementsByTagName('TR'); E = T[0].getElementsByTagName('TH')[1]; E.innerHTML = calc(total, 1, 1).toString().replace('.',',') + ' Euros'; P = T[1].getElementsByTagName('TD'); P[2].innerHTML = Arts; Q = calc(Arts, P[1].innerHTML.replace(',','.'), 1); P[3].innerHTML = Q.toString().replace('.',',') + ' Euros'; E = T[2].getElementsByTagName('TH')[1]; E.innerHTML = calc(total, Q, 2).toString().replace('.',',') + ' Euros'; return true; } return false; }
function RAZ() { var T = document.getElementById('tabl'); T = T.getElementsByTagName('TBODY')[0]; T = T.getElementsByTagName('TR'); for(var i=0; i<T.length; i++) { T[i].getElementsByTagName('TD')[3].innerHTML = ''; } T = document.getElementById('tabl'); T = T.getElementsByTagName('TFOOT')[0]; T = T.getElementsByTagName('TR'); T[0].getElementsByTagName('TH')[1].innerHTML = ''; T[2].getElementsByTagName('TH')[1].innerHTML = ''; T = T[1].getElementsByTagName('TD') T[3].innerHTML = T[2].innerHTML = ''; return false; } </script> <style type="text/css"> table { empty-cells: show } table td input { width: 30px } </style> </head> <body>
Hors à priori une zone texte HTML ne peux pas avoir un nom de forme tableau : document.form_commande.T[1].value n'est pas possible. Seul un nom constant de type document.form_commande.T1.value est possible
si on préfère avec les ID :
var num1 = num2 = total = num = articles = 0, T; var TR = document.form_commande.getElementsByTagName('TR'); for(var i=1; i<TR.length-3; i++) { num1 = document.getElementById('Q_'+i).value*1; // ou : // num1 = document.form_commande['Q_'+i].value*1; num2 = document.getElementById('P_'+i).innerHTML.replace(',','.')*1; num = Math.round(num1*num2*100)/100; total += num; articles += num1; T = document.getElementById('T_'+i); T.innerHTML = num.toString.replace('.',',')+' euros'; }
Hors à priori une zone texte HTML ne peux pas avoir un nom de forme tableau : document.form_commande.T[1].value n'est pas possible. Seul un nom constant de type document.form_commande.T1.value est possible
Y a t'il une alternative pour pointer un nombre varaible de zone avec un pointeur ??? Rien trouvé sur le web ni dans mes bouqins ...
Stéphane t'a donné une réponse possible... Mais plus simplement, si tu donnes le même attribut name à des éléments de formulaire (mettons name="T"), tu récupéreras par script un tableau où les éléments seront indicés selon leur ordre d'apparition dans la page HTML (donc document.form_commande.T[0] désignera le premier élément nommé T dans la page).
Exemple minimal :
<html><head><title></title> <script type="text/javascript"> function test(){ var f = document.forms[0]; var m = "T[0] = "+f.T[0].value; m += "nT[1] = "+f.T[1].value; m += "nT[2] = "+f.T[2].value; alert(m); } </script> </head> <body> <form onsubmit="return false;"> <input type="text" name="T"> <input type="text" name="T"> <input type="text" name="T"> <button onclick="test()">Test...</button> </form></body></html>
-- Y.D.
Je voudrait lire / ecrire des Zones Texte HTML avec des noms de type
tableau[i] par exemple qui permettent des calcules traitables par boucle
Hors à priori une zone texte HTML ne peux pas avoir un nom de forme tableau
: document.form_commande.T[1].value n'est pas possible. Seul un nom constant
de type document.form_commande.T1.value est possible
Y a t'il une alternative pour pointer un nombre varaible de zone avec un
pointeur ??? Rien trouvé sur le web ni dans mes bouqins ...
Stéphane t'a donné une réponse possible... Mais plus simplement,
si tu donnes le même attribut name à des éléments de formulaire
(mettons name="T"), tu récupéreras par script un tableau où les
éléments seront indicés selon leur ordre d'apparition dans la
page HTML (donc document.form_commande.T[0] désignera le premier
élément nommé T dans la page).
Exemple minimal :
<html><head><title></title>
<script type="text/javascript">
function test(){
var f = document.forms[0];
var m = "T[0] = "+f.T[0].value;
m += "nT[1] = "+f.T[1].value;
m += "nT[2] = "+f.T[2].value;
alert(m);
}
</script>
</head>
<body>
<form onsubmit="return false;">
<input type="text" name="T">
<input type="text" name="T">
<input type="text" name="T">
<button onclick="test()">Test...</button>
</form></body></html>
Hors à priori une zone texte HTML ne peux pas avoir un nom de forme tableau : document.form_commande.T[1].value n'est pas possible. Seul un nom constant de type document.form_commande.T1.value est possible
Y a t'il une alternative pour pointer un nombre varaible de zone avec un pointeur ??? Rien trouvé sur le web ni dans mes bouqins ...
Stéphane t'a donné une réponse possible... Mais plus simplement, si tu donnes le même attribut name à des éléments de formulaire (mettons name="T"), tu récupéreras par script un tableau où les éléments seront indicés selon leur ordre d'apparition dans la page HTML (donc document.form_commande.T[0] désignera le premier élément nommé T dans la page).
Exemple minimal :
<html><head><title></title> <script type="text/javascript"> function test(){ var f = document.forms[0]; var m = "T[0] = "+f.T[0].value; m += "nT[1] = "+f.T[1].value; m += "nT[2] = "+f.T[2].value; alert(m); } </script> </head> <body> <form onsubmit="return false;"> <input type="text" name="T"> <input type="text" name="T"> <input type="text" name="T"> <button onclick="test()">Test...</button> </form></body></html>
-- Y.D.
Arnaud
10 000 merci à vous deux ...
Le solution de YD fonctionne à merveille quand à la solution de SAM je vais l'étudier de pret car je n'ai pas encore le niveau suffisant en javascript pour l'utiliser tel que ...
Cordialement
Arnaud
"Arnaud" <clerget_aclub-internet.fr> a écrit dans le message de news: 47ef9e5c$0$21144$
Salut à tous
Je voudrait lire / ecrire des Zones Texte HTML avec des noms de type tableau[i] par exemple qui permettent des calcules traitables par boucle
Hors à priori une zone texte HTML ne peux pas avoir un nom de forme tableau : document.form_commande.T[1].value n'est pas possible. Seul un nom constant de type document.form_commande.T1.value est possible
Y a t'il une alternative pour pointer un nombre varaible de zone avec un pointeur ??? Rien trouvé sur le web ni dans mes bouqins ...
Cordialement
Arnaud
10 000 merci à vous deux ...
Le solution de YD fonctionne à merveille quand à la solution de SAM je vais
l'étudier de pret car je n'ai pas encore le niveau suffisant en javascript
pour l'utiliser tel que ...
Cordialement
Arnaud
"Arnaud" <clerget_aclub-internet.fr> a écrit dans le message de news:
47ef9e5c$0$21144$7a628cd7@news.club-internet.fr...
Salut à tous
Je voudrait lire / ecrire des Zones Texte HTML avec des noms de type
tableau[i] par exemple qui permettent des calcules traitables par boucle
Hors à priori une zone texte HTML ne peux pas avoir un nom de forme
tableau : document.form_commande.T[1].value n'est pas possible. Seul un
nom constant de type document.form_commande.T1.value est possible
Y a t'il une alternative pour pointer un nombre varaible de zone avec un
pointeur ??? Rien trouvé sur le web ni dans mes bouqins ...
Le solution de YD fonctionne à merveille quand à la solution de SAM je vais l'étudier de pret car je n'ai pas encore le niveau suffisant en javascript pour l'utiliser tel que ...
Cordialement
Arnaud
"Arnaud" <clerget_aclub-internet.fr> a écrit dans le message de news: 47ef9e5c$0$21144$
Salut à tous
Je voudrait lire / ecrire des Zones Texte HTML avec des noms de type tableau[i] par exemple qui permettent des calcules traitables par boucle
Hors à priori une zone texte HTML ne peux pas avoir un nom de forme tableau : document.form_commande.T[1].value n'est pas possible. Seul un nom constant de type document.form_commande.T1.value est possible
Y a t'il une alternative pour pointer un nombre varaible de zone avec un pointeur ??? Rien trouvé sur le web ni dans mes bouqins ...
Cordialement
Arnaud
SAM
10 000 merci à vous deux ...
Le solution de YD fonctionne à merveille
donc je n'ai absolument pas compris ce que tu appelais des "Zones Texte HTML" :-( .. en fait, de bêtes champs de texte (text-field) (ou input text)
quand à la solution de SAM je vais l'étudier de pret car je n'ai pas encore le niveau suffisant en javascript pour l'utiliser tel que ...
Tu peux aussi bien jeter tt de suite.
"Arnaud" <clerget_aclub-internet.fr> a écrit dans le message de news: 47ef9e5c$0$21144$
Je voudrait lire / ecrire des Zones Texte HTML avec des noms de type tableau[i] par exemple qui permettent des calcules traitables par boucle
Hors à priori une zone texte HTML ne peux pas avoir un nom de forme tableau : document.form_commande.T[1].value n'est pas possible.
10 000 merci à vous deux ...
Le solution de YD fonctionne à merveille
donc je n'ai absolument pas compris ce que tu appelais des
"Zones Texte HTML"
:-(
.. en fait, de bêtes champs de texte (text-field) (ou input text)
quand à la solution de SAM je vais
l'étudier de pret car je n'ai pas encore le niveau suffisant en javascript
pour l'utiliser tel que ...
Tu peux aussi bien jeter tt de suite.
"Arnaud" <clerget_aclub-internet.fr> a écrit dans le message de news:
47ef9e5c$0$21144$7a628cd7@news.club-internet.fr...
Je voudrait lire / ecrire des Zones Texte HTML avec des noms de type
tableau[i] par exemple qui permettent des calcules traitables par boucle
Hors à priori une zone texte HTML ne peux pas avoir un nom de forme
tableau : document.form_commande.T[1].value n'est pas possible.