Przekazywanie wartości liczbowych z Form do innego Form i wykonywanie na nich działań matematycznych

1

Cześć, tak jak w temacie, mam jednego dużego Form, w którym są dwie tabele i dla każdej z nich jest wyliczana wartość MAX z zaznaczonych punktów. Poniżej mam inną tabelę wraz z innym formem gdzie wyniki pkt. muszą się wyświetlać i muszą zostać pomnożone. Oto przykład mojego rozwiązania: http://jsfiddle.net/s751xng3/1/
Przy samym wyświetlaniu wartości wypisałem inną ścieżkę, ale w jaki sposób dostać się do konkretnych wartości by można je było mnożyć/dodawać czy inne rzeczy?
Podany zapis:

document.Form.totalResult.value=document.myForm.total.value*document.myForm.total1.value;

nie jest poprawny i wartość mnożenia mi się nie pokazuje. Czy coś pominąłem? Jest może jakieś łatwe rozwiązanie tego problemu? Bardzo proszę o pomoc.

Pozdrawiam

1

Napisz proszę jeszcze raz, bo albo ja jeszcze jestem zaspany po nocce, albo Ty namąciłeś... W każdym razie - chętnie bym Ci pomógł, ale prawie nic nie rozumiem z Twojego pytania :(

Masz dużego plusa za umieszczenie kodu na jsfiddle :)

0

No generalnie sprawa wygląda tak, są dwie tabele K1S1 i K1S2. Jeżeli chodzi o ich działanie to są poprawne (w każdej z nich jest liczona max wartość). Załóżmy że z tabeli K1S1 mamy wartość 2 a z tabeli K1S2 wartość 4. Zatem w podsumowaniu czyli 3 tabeli powinno się nam wyświetlić:
Liczba pkt. K1S1 = 2
Liczba pkt. K1S2 = 4
Liczba pkt. K1 = K1S1*K1S2 = 8

Problem tkwi w tym, że jako liczby pkt K1S1 czy K1S2 umiem wyświetlić, tak aby się do nich dostać aby pomnożyć te wartości to nie wiem za bardzo w jaki sposób.
Czy teraz już bardziej rozjaśniłem w czym tkwi mój problem? :)

1

Fajnie, że wyjaśniłeś o co chodzi i jak to ma działać :D

Rzeczywiście, pokazywanie największej wartości danej tabeli działa (w zależności od tego, gdzie postawisz ptaszek, taka wartość pojawia się na dole). Dobre jest też to, że wartości tych punktów nie są zakodowane na sztywno w skrypcie, ale pobierane z tabeli - w związku z czym jak się zmieni <input value=... to sprawdzanie punktów działa poprawnie, uwzględnia zmianę.

Moja rada (nie jest to wprawdzie błąd i nie musisz jej uwzględniać) - wywal jquery. Niczego to nie wnosi do sprawy, a takie podstawowe operacje jakie masz, można w zupełności zrobić w czystym JavaScript.

Pytanie - czy chcesz to mieć zrobione porządnie, czy tylko "żeby działało"? Bo kilka zmian w kodzie by się przydało, zanim przejdziemy do efektu końcowego, czyli przemnażania wartości tabeli1 i tabeli2.

0

Szczerze to nie znam się za bardzo, trochę znam JS i Jquery i czasem nie widzę, że są połączone (po prostu coś piszę i jakoś to działa). Ale jakoś nie mogę się dopatrzeć gdzie w funkcjach z tego korzystam prócz zapisu:

<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>

Na razie wolę zostawić tak jak jest, chyba że do zmiany jest naprawdę nie dużo a ja po prostu nie kojarzę o który dokładnie fragment z Jquerry Ci chodzi xD

No chciałbym to zrobić żeby to wyglądało porządnie. Jednak jeżeli w sposobie "żeby działało" jest niewiele do zmiany to też z chęcią bym zobaczył w jaki sposób to zrobić. Ostatecznie chyba lepiej znać więcej niż jeden sposób podejścia do problemu a i na przyszłość będę wiedział co zrobić "na szybko" a co zrobić "dobrze" :)

Także byłbym bardzo wdzięczny o wszelkie wskazówki/rozwiązania ;)

1

Rzeczywiście, mój błąd - nie analizowałem całości, ale zauważyłem że na górze linkujesz jquery więc założyłem, że z tego korzystasz. Rzeczywiście, po usunięciu tych odwołań, wszystko działa tak, jak powinno (znaczy - brak jquery niczego nie popsuł).
Wrzucając na jsfiddle lepiej trzymać HTML oraz JS w miejscach do tego przeznaczonych. Tak wygląda Twój kod po przeróbce: https://jsfiddle.net/6yhpnz45/

Teraz muszę uciekać z firmy, ale postaram się jeszcze dzisiaj coś z Twoją sprawą zrobić :)

0

Ok, tak właśnie myślałem, że sugerowałeś się linkami jquery :P
Co do jsfiddle to znam tą konwencję, po prostu wrzucałem na szybko i wygodniej było dać wszystko w jednym miejscu :)

Ok, będę wdzięczny za wszelkie odpowiedzi i pomoc w tym temacie :D

1

Musisz zwrócić uwagę, że skrypt wykonuję się tylko raz przy załadowaniu strony. Wtedy total = 0 i total1 = 0, więc 0*0=0, dlatego totalresult = 0;.
Żeby wszystko Ci działało jak oczekujesz musisz podpiąć pod jakiś event lub button samo wykonywanie obliczenia. Tak samo jak masz podpięte checkTotal() i checkTotal1() pod onchange checkbox

document.Form.totalResult.value=document.myForm.total.value*document.myForm.total1.value;

Powyższy kod wykona się tylko, raz przy załadowaniu strony.

np. tak: https://jsfiddle.net/6yhpnz45/5/
dodałem button oblicz, ty możesz tą funkcje podpiąć pod np. 'onchange ' checkbox

0
debug napisał(a):

Musisz zwrócić uwagę, że skrypt wykonuję się tylko raz przy załadowaniu strony. Wtedy total = 0 i total1 = 0, więc 0*0=0, dlatego totalresult = 0;.
Żeby wszystko Ci działało jak oczekujesz musisz podpiąć pod jakiś event lub button samo wykonywanie obliczenia. Tak samo jak masz podpięte checkTotal() i checkTotal1() pod onchange checkbox

document.Form.totalResult.value=document.myForm.total.value*document.myForm.total1.value;

Powyższy kod wykona się tylko, raz przy załadowaniu strony.

np. tak: https://jsfiddle.net/6yhpnz45/5/
dodałem button oblicz, ty możesz tą funkcje podpiąć pod np. 'onchange ' checkbox

Jeżeli miałbym podpiąć event, to jaki?

Spróbowałem zrobić to jakoś analogicznie... żeby mi sumowało wartości przekazane do total i total1 ale klapa, kod nie działa
https://jsfiddle.net/6yhpnz45/8/
Jest na to jakieś proste rozwiązanie? Bo już nie mam pomysłu jak inaczej do tego podejść :/

1 użytkowników online, w tym zalogowanych: 0, gości: 1