Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL][JAVA] Formularz i zliczanie
DannyM
post
Post #1





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Mam sobie formularz a dane do niego czesciowo sa pobierane z bazy a wartosci wpisuje klient. Tak sobie formularz.

Teraz mam tak:

nazwa | pole przelicznika np. 1000 | pole wartosci [wprowadza user] | i tu chcialbym dodac pole zliczajace wartosc * przelicznik ale w czasie wpisywania wartosci w czasie rzeczywistym.

Bede wdzieczny za wszystkie pomysly lub propozycje.

Ten post edytował DannyM 7.08.2008, 08:58:29
Go to the top of the page
+Quote Post
Ar2r
post
Post #2





Grupa: Zarejestrowani
Postów: 140
Pomógł: 16
Dołączył: 12.06.2002
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Zrób to na JS. Dla pola wartość zastosuj zdarzenie onkeypress które będzie wywoływać funkcję pobierajacą wartości, wykonującą na nich działanie i wpisującą wynik do określonego elementu (zastosuj document.getElementById).
Go to the top of the page
+Quote Post
DannyM
post
Post #3





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Cytat(Ar2r @ 7.08.2008, 10:14:28 ) *
Zrób to na JS. Dla pola wartość zastosuj zdarzenie onkeypress które będzie wywoływać funkcję pobierajacą wartości, wykonującą na nich działanie i wpisującą wynik do określonego elementu (zastosuj document.getElementById).

Szczerze w JS to ja umiem tyle co w C++ (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Nie masz moze jakiegos malego tutoriala ? Nie wiem nawet pod jaka nazwa tego szykac
Go to the top of the page
+Quote Post
Ar2r
post
Post #4





Grupa: Zarejestrowani
Postów: 140
Pomógł: 16
Dołączył: 12.06.2002
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Dla przykładu
  1. <input id="przelicznik" value="1000" />
  2. <input id="wartosc" onkeypress="oblicz()" />
  3. <input id="wynik" />
  4. </form>
  5. <script type="text/javascript">
  6. function oblicz(){
  7. var wynik = document.getElementById('przelicznik').value*document.getElementById('wartosc').value;
  8. document.getElementById('wynik').value=wynik;
  9. }
Go to the top of the page
+Quote Post
DannyM
post
Post #5





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Cytat(Ar2r @ 7.08.2008, 11:28:25 ) *
Dla przykładu
  1. <input id="przelicznik" value="1000" />
  2. <input id="wartosc" onkeypress="oblicz()" />
  3. <input id="wynik" />
  4. </form>
  5. <script type="text/javascript">
  6. function oblicz(){
  7. var wynik = document.getElementById('przelicznik').value*document.getElementById('wartosc').value;
  8. document.getElementById('wynik').value=wynik;
  9. }

o pieknie. Zaraz przetestuje i dam znac co mi wyszlo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Dzieki Twojemu tutorialowi zrozumialem zasade.
Idac dalej napotykam dalesze problemy. Jesli pobieram duza ilosc danych do formularza z bazy pewne pola sie powtarzaja i rozwiazalem to tak:

  1. <input id="przelicznik<?php echo $row_grupaA['id']; ?>" value="1000" />
  2. <input id="wartosc<?php echo $row_grupaA['id']; ?>" onkeypress="oblicz()" />
  3. <input id="wynik<?php echo $row_grupaA['id']; ?>" />
  4. </form>


Bo tych produktow jest ze 100 i sa podzielone na grupy wiec nastepna grupa ma:

  1. <input id="przelicznik<?php echo $row_grupaB['id']; ?>" value="1000" />
  2. <input id="wartosc<?php echo $row_grupaB['id']; ?>" onkeypress="oblicz()" />
  3. <input id="wynik<?php echo $row_grupaB['id']; ?>" />
  4. </form>


Teraz jak to wbic w tego JS?
Czy mam dla kazdej grupy stworzyc odrebny kod np.:
  1. <script type="text/javascript">
  2. function oblicz(){
  3. var wynik = document.getElementById('przelicznik<?php echo $row_grupaA['id']; ?>').value*document.getElementById('wartosc<?php echo $row_grupaA['id']; ?>').value;
  4. document.getElementById('wynik<?php echo $row_grupaA['id']; ?>').value=wynik;
  5. }

Czy cos w tym stylu bo ten przyklad mi nie dziala (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Dodam, ze na koncu musze wszysko zsumowas

Ten post edytował DannyM 8.08.2008, 07:20:28
Go to the top of the page
+Quote Post
ayeo
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Witaj!
Po pierwsze Twój kod JS jest całkowicie bezsesnu! Zostaw go tak jak Ar2r wyżej Ci pokazał (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Jedyne co musisz dodać to jakąś zmienną globalną i do niej dodawać poszczególne wyniki, żeby mieć sumę na końcu. Samo wyświetlanie formularza rób w pętli po prostu.

Pozdrawiam!
Go to the top of the page
+Quote Post
DannyM
post
Post #7





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


No wlasnie zliczanie jest po <?php echo $row_grupaB['id']; ?>
Wszysko jest w petli. Niestety nie zlicza. Dodaje do kazdej pozycji ID produktu wiec sadzilem, ze do kodu JS trzeba tez to dodac bo inaczej on nie widzi wartosc tylko wartosc22 wiec jej nie zlicza.

Ten post edytował DannyM 8.08.2008, 07:51:12
Go to the top of the page
+Quote Post
Ar2r
post
Post #8





Grupa: Zarejestrowani
Postów: 140
Pomógł: 16
Dołączył: 12.06.2002
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Nie możesz w ten sposób mieszać JS i php. Jeśli chcesz mieć uzależnione wyniki od ID to na przykład:
  1. ...
  2. <input id="wartosc<?php echo $row_grupaA['id']; ?>" onkeypress="oblicz(<?php print $row_grupaA['id'];?>)" />
  3. ...
  4. <script type="text/javascript">
  5. function oblicz(id){
  6. var przel = 'przelicznik'+id;
  7. var wart = 'wartosc'+id;
  8. var dest = 'wynik'+id;
  9. var wynik = document.getElementById(przel).value*document.getElementById(wart).value;
  10. document.getElementById(dest).value=wynik;
  11. }
Go to the top of the page
+Quote Post
DannyM
post
Post #9





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Pokaze Ci do mam moze znajdziesz bleda (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

  1. <tr bgcolor="" onMouseOver="this.bgColor='#FFF9E1';" onMouseOut="this.bgColor=''">
  2. <td><input name="pole<?php echo $row_grupa['id']; ?>" type="text" class="hide" id="pole<?php echo $row_grupa['id']; ?>" readonly="readonly" value="<?php echo $row_grupa['index']; ?>" size="10" /></td>
  3. <td><input name="nazwa<?php echo $row_grupa['id']; ?>" type="text" class="hide" id="nazwa<?php echo $row_grupa['id']; ?>" readonly="readonly" value="<?php echo $row_grupa['name']; ?>" size="50" /></td>
  4. <td><input name="weight<?php echo $row_grupa['id']; ?>" type="text" id="weight<?php echo $row_grupa['id']; ?>" onfocus="this.select()" value="<?php echo $row_grupa['weight']; ?>" size="5" readonly="readonly"/>
  5. <input name="sztuki<?php echo $row_grupa['id']; ?>" type="text" id="sztuki<?php echo $row_grupa['id']; ?>" onfocus="this.select()" value="<?php echo $row_grupa['sztuki']; ?>" size="5" readonly="readonly"/>
  6. <input name="karton<?php echo $row_grupa['id']; ?>" type="text" id="karton<?php echo $row_grupa['id']; ?>" onfocus="this.select()" size="5" onkeypress="oblicz(<?php print $row_grupa['id'];?>)"/></td>
  7. <td align="center">
  8.  
  9. <input name="kg" type="text" id="kg" onfocus="this.select()" size="5" /> </td>
  10. <td align="center">&nbsp;</td>
  11. <td align="center">
  12. <input name="szt" type="text" id="szt" onfocus="this.select()" size="5" onkeypress="oblicz(<?php print $row_grupa['id'];?>)"/> </td>
  13. </tr>
  14. <script type="text/javascript">
  15. function oblicz(id){
  16. var przel = 'waga'+id;
  17. var wart = 'karton'+id;
  18. var dest = 'kg'+id;
  19. var sztuki = 'szt'+id;
  20. var wynik = document.getElementById(przel).value*document.getElementById(wart).value;
  21. var wynik = document.getElementById(sztuki).value*document.getElementById(wart).value;
  22. document.getElementById(dest).value=wynik;
  23. document.getElementById(sztuki).value=wynik;
  24. }


Dodam tylko, ze to wiersz ktory sie zapetla.

Ten post edytował DannyM 8.08.2008, 09:29:52
Go to the top of the page
+Quote Post
Ar2r
post
Post #10





Grupa: Zarejestrowani
Postów: 140
Pomógł: 16
Dołączył: 12.06.2002
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Napisz jeszcze co się dzieje, jaki jest efekt, błąd oraz gdzie się kończy pętla?
<script> też jest w pętli?
Go to the top of the page
+Quote Post
DannyM
post
Post #11





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Wlansi nic sie nie dzieje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Zwyczajnie nie oblicza. JS nie jest w petli.
Ten wiersz tabeli tylko sie powiela
Go to the top of the page
+Quote Post
Ar2r
post
Post #12





Grupa: Zarejestrowani
Postów: 140
Pomógł: 16
Dołączył: 12.06.2002
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Dobra
1. Nazwy w właściwości name muszą odpowiadać tym w JS (skoro masz na przykład sztuki to nie możesz nagle skracac w JS nazwy do szt)
2. Zmienna wynik w JS jest zastosowana dwukrotnie. Pierwsze wystapienie zostanie nadpisane drugim;

Popraw i zobacz czy dziala
Go to the top of the page
+Quote Post
DannyM
post
Post #13





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Zmienilem na:
  1. <tr bgcolor="" onMouseOver="this.bgColor='#FFF9E1';" onMouseOut="this.bgColor=''">
  2. <td><input name="pole<?php echo $row_grupa['id']; ?>" type="text" class="hide" id="pole<?php echo $row_grupa['id']; ?>" readonly="readonly" value="<?php echo $row_grupa['index']; ?>" size="10" /></td>
  3. <td><input name="nazwa<?php echo $row_grupa['id']; ?>" type="text" class="hide" id="nazwa<?php echo $row_grupa['id']; ?>" readonly="readonly" value="<?php echo $row_grupa['name']; ?>" size="50" /></td>
  4. <td><input name="weight<?php echo $row_grupa['id']; ?>" type="text" id="weight<?php echo $row_grupa['id']; ?>" onfocus="this.select()" value="<?php echo $row_grupa['weight']; ?>" size="5" readonly="readonly"/>
  5. <input name="sztuki<?php echo $row_grupa['id']; ?>" type="text" id="sztuki<?php echo $row_grupa['id']; ?>" onfocus="this.select()" value="<?php echo $row_grupa['sztuki']; ?>" size="5" readonly="readonly" />
  6. <input name="karton<?php echo $row_grupa['id']; ?>" type="text" id="karton<?php echo $row_grupa['id']; ?>" onfocus="this.select()" size="5" onkeypress="oblicz(<?php print $row_grupa['id'];?>)"/></td>
  7. <td align="center">
  8.  
  9. <input name="kg" type="text" id="kg" onfocus="this.select()" size="5" /> </td>
  10. <td align="center">&nbsp;</td>
  11. <td align="center">
  12. <input name="sztuki_sum" type="text" id="sztuki_sum" onfocus="this.select()" size="5" /> </td>
  13. </tr>
  14.  
  15. <script type="text/javascript">
  16. function oblicz(id){
  17. var waga = 'weight'+id;
  18. var karton = 'karton'+id;
  19. var kg = 'kg'+id;
  20. var sztuki = 'sztuki'+id;
  21. var wynik = document.getElementById(waga).value*document.getElementById(karton).value;
  22. var wynik2 = document.getElementById(sztuki).value*document.getElementById(karton).value;
  23. document.getElementById(kg).value=wynik;
  24. document.getElementById(sztuki_sum).value=wynik2;
  25. }

Wydaje mi sie, ze powinno smigac ale tak nie jest
Nie wiem ale wydaje mi sie, ze to cos z onkeypress="oblicz(<?php print $row_grupa['id'];?>)"
Go to the top of the page
+Quote Post
Ar2r
post
Post #14





Grupa: Zarejestrowani
Postów: 140
Pomógł: 16
Dołączył: 12.06.2002
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Pola kg i sztuki_sum nie posiadają indeksów, więc w JS też są niepotrzebne. Jeśli chciałeś użyć bezpośrednio nazw to trzebyło je opakować w cudzysłów
  1. document.getElementById('kg').value=wynik;
  2. document.getElementById('sztuki_sum').value=wynik2;
Go to the top of the page
+Quote Post
DannyM
post
Post #15





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


A tak z innej beczki
Jak poprawnie odejmowac.

var wynik = document.getElementById(waga).value-document.getElementById(karton).value;

cos smiesznie odejmuje i odejmuje jak poprawiam to co wpisalem to on dalej odejmuje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

A czy da sie te wartosc jakosc zaokraglic? Mam 2,99 a wole 3 itd.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.09.2025 - 10:18