suma pol formularza

Wszystko związane ze skryptami JS, DHTML itd.
WiruSSS
Posty: 1
Rejestracja: 14 sty 2010, 04:01:58
Płeć: Niewybrana
User Agent: Opera Windows 1280x1024

suma pol formularza

Post autor: WiruSSS »

Witam

Mam sobie dynamicznie generowany formularz, jednym z pól jest pole zawierające cenę. Pól może być różna ilość.
Użyłem nazwy pola jako tablicy:

Kod: Zaznacz cały

<input type="text" name="cena[]" /> 
z poziomu php dzięki temu bardzo łatwo mi jest policzyć sumę tych pól, jak to zrobić za pomocą javascript?

próbowałem coś w tym stylu:

Kod: Zaznacz cały

var arr=new Array();
arr=document.getElementsByName('cena'); 
no i teraz pętelka ..jednak javascript nie widzi jakby tych pól gdy mają nazwy zdefiniowane jako tablicę, jak mogę to inaczej zrobić ..zaznaczam, że chciałbym aby nazwy pól zostały w takiej formie ...no chyba, że nie da się do takich pól odwołać z poziomy JS.

[EDIT]

..już wiem w czym tkwi problem :P ..zapomniałem że niestety nie używam nazw w taki sposób:

Kod: Zaznacz cały

<input type="text" name="cena[]" /> 
tylko w taki

Kod: Zaznacz cały

<input type="text" name="cena[tutaj_id_generowane_przez_php]" /> 
co uniemożliwia mi dostęp do tych elementów za pomoca elements['cena[]'] czy getElementsByName['cena[]']

...jak w takim razie zbudować funkcję która będzie mi sumować te pola?

[EDIT]

..dobra już wiem ..ciężko będzie zrobić to w ten sposób ..ale niestety nie wiem czy jest inne wyjście z racji na to ze finalnie to ma wyglądać tak, podam kilka przykładowych pól i sposób w jaki mają być liczone.

więc przykładowo mam wygenerowany taki formularz.

Kod: Zaznacz cały

<input name="ilosc[1]" id="ilosc[1]" /> <input name="netto[1]" id="netto[1]" /> <input name="brutto[1]" id="brutto[1]" />
<input name="ilosc[2]" id="ilosc[2]" /> <input name="netto[2]" id="netto[2]" /> <input name="brutto[2]" id="brutto[2]" />
<input name="ilosc[3]" id="ilosc[3]" /> <input name="netto[3]" id="netto[3]" /> <input name="brutto[3]" id="brutto[3]" />
<input name="ilosc[4]" id="ilosc[4]" /> <input name="netto[4]" id="netto[4]" /> <input name="brutto[4]" id="brutto[4]" />

<input name="snetto" id="snetto" /> <input name="sbrutto" id="sbrutto" /> 
..jest to tylko mały fragment ..ale dobrze pokazuje o co mi chodzi.
Więc wszystkie pola w rzędzie mają na siebie wpływ, czyli jak modyfikuję np ilość do się pola w rzędzie przeliczają na jego podstawie, jak się zmienia wartość netto ..to się wszystko przelicza na jego podstawie, tak się przeliczają wszystkie rzędy, dlatego nie używam np ilosc[] tylko ilosc[1] ..żeby JS "wiedział", które pola mają ze sobą korespondować.
Natomiast do tego wszystkiego są jeszcze pola z sumą ..gdzie także podczas modyfikacji mają się przeliczać wszystkie sumy.
ODPOWIEDZ