Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Formularz a przycisk "przelicz"
busyboy
post 24.06.2012, 09:52:00
Post #1





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

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


Witam

Może ktoś mi pomoże w tej kwestii – mam formularz :

  1. <form enctype="multipart/form-data" action='' method=post>
  2. <table width="100%" border="0" cellpadding="2" cellspacing="0">
  3. </table>
  4. <table width="100%" border="0" cellpadding="2" cellspacing="0">
  5. <tr>
  6. <td><table width="64%" border="0" cellpadding="0" cellspacing="0">
  7. <tr>
  8. <td valign="top" width="346"><div><a href="#" class="style12">komp</a></div></td>
  9. </tr>
  10. </tbody>
  11. </table></td>
  12. <td align="center" valign="top" width="60"><INPUT class=submit input type="submit" name=dodaj_mail24 value="przelicz"></td>
  13. <td align="center" valign="top" width="60"><input name="cart_quantity[]222" value="1" size="3" type="text"></td>
  14. <td width="60"><div style="padding-top:5px" class="style2" align="justify">
  15. <div align="center">111,11 PLN</div>
  16. </div></td>
  17. <td div="" style="padding-top: 5px;" class="style2" align="justify" width="60"><div align="center">7 %</div></td>
  18. <td width="60"><div style="padding-top:5px" class="style2" align="justify">
  19. <div align="center">118,77 PLN</div>
  20. </div></td>
  21. <td width="60"><div style="padding-top:5px" class="style2" align="justify">
  22. <div align="center"><a href="#" class="style12">Usuń</a></div>
  23. </div></td>
  24. </tr>
  25. </tbody>
  26. </table>
  27. <table width="400" align="center">
  28. <tr><td><center><INPUT class=submit input type="submit" name=zamow value="Zam&oacute;w">
  29. </center></td></tr>
  30. </table>
  31. </form>


Chodzi o to że mam tam ilość sztuk, ceny brutto, netto oraz vat oraz przycisk przelicz. Domyślnie jest ilość sztuk 1. Chociażbym zrobić coś takiego że jak wprowadzi się inna ilość sztuk i wciśnie się przycisk przelicz to żeby na formularzu uległy zmianie ceny brutto, netto.

Mam nadzieje że wyraziłem się zrozumiale.

Pozdrawiam
Go to the top of the page
+Quote Post
Posio
post 24.06.2012, 10:36:41
Post #2





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

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


Zainteresuj sie jQuery POST, pomecz sie, napisz w osobnym pliku w php jak i co ma przeliczac. I przypisz do przycisku PRZELICZ wywolanie funkfji ktora napiszesz. Nikt Ci gotowca nie napisze. Napisz cos, bedziemy to weryfikowac i ewentualnie poprawiac.
Go to the top of the page
+Quote Post
r4xz
post 24.06.2012, 11:27:35
Post #3





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

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


+ wrzuć to co uda Ci się naskrobać na jsfiddle i podeślij link

--EDIT--
jQuery POST? to akurat jakaś pomyłka... możesz to zrobić dwojako: 1. bez przycisku przelicz (całość przeliczy po zmianie jakiejkolwiek wartości bez przeładowania strony), 2. czysty PHP (z przeładowaniem strony i przyciskiem przelicz)

Ten post edytował r4xz 24.06.2012, 11:29:33


--------------------
Go to the top of the page
+Quote Post
kamil4u
post 24.06.2012, 14:14:26
Post #4





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


W JS:
1. Poczytaj o podstawach JS
2. Poczytaj o zdarzeniach w JS
3. Poczytaj o podstawach DOM
4. Psudokod:
Kod
gdy_DOM_załadowany = funkcja{
  przyciskPrzelicz.klikniecie = funkcja{
    wartosc1 = zamienNaLiczbe( input1.wartosc );
    wartosc2 =  zamienNaLiczbe( input2.wartosc );
    element2.tekst = wartosc1*23+wartosc2;
  }
}

5. Teraz konkretniej:
a ) gdy_DOM_załadowany -> zdarzenie onload
b ) przyciskPrzelicz -> DOM, np. funkcja getElementById lub getElementsByClassName
c ) przyciskPrzelicz.klikniecie -> zdarzenie onclick
d ) wartosc1 - zwykła zmienna -> var
e ) input1, input2 -> znowu DOM i znowu te funkcje co przy b )
f ) zamienNaLiczbe -> parseFloat lub parseInt , zależy czego potrzebujesz
g ) input1.wartosc -> wartosc pobierasz przez "element.value" dla input-ów i "element.innerHTML" dla span-ów, div-ów i generalnie wszystkich innych elementów HTML
h ) element2.tekst -> tu znowu DOM i to co w g ), czyli value lub innerHTML, w zależności od potrzeb
i ) wartosc1*23+wartosc2 -> obliczenia matematyczne, które potrzebujesz

Powodzenia i w razie wątpliwości pytaj, ale postaraj się zdać już bardziej szczegółowe pytanie


--------------------
Go to the top of the page
+Quote Post
Posio
post 24.06.2012, 16:02:47
Post #5





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

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


r4xz, dlaczego uważasz że jQuery.post() tutaj nie pasuje ? Może to wg mnie zrobić na 3 sposoby 1. z przycieskiem, 2. bez przycisku, 3. z przedładowaniem.

Reszta jest napisana wyżej smile.gif
Go to the top of the page
+Quote Post
kamil4u
post 24.06.2012, 16:21:00
Post #6





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Jak dla mnie nie pasuje. I jest tylko jedna możliwa opcja: za pomocą JS.

Z przeładowaniem w PHP jest bez sensu, bo skoro to wygląda na sklep to można już zrobić tylko przycisk "zakup" i tam już będzie ile co kosztuje - czyli wykonać tę akcję nijako przy okazji.

Bez przeładowania za pomocą AJAX-u( jQuery.post() ) również jest bez sensu, bo po co obciążać zupełnie niepotrzebnie serwer, skoro może to zrobić przeglądarka u użytkownika.

I teraz jak to powinno wyglądać:
- podstawowy HTML wygląda tak, że w ogóle nie ma przycisku przelicz
- teraz w zależności od wersji:
a ) zrezygnować z tego przycisku w ogóle i użyć zdarzenia change/keyup/keydown
b ) przycisk "przelicz" dodawać dynamicznie za pomocą DOM-u i do niego przypisać do niego akcję jak w poprzednim moim poście.


--------------------
Go to the top of the page
+Quote Post
busyboy
post 12.07.2012, 22:08:39
Post #7





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

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


Bardzo bym prosil o jakis przyklad ? chociaz szablonowy...
Go to the top of the page
+Quote Post
kamil4u
post 13.07.2012, 23:28:59
Post #8





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Cytat
Bardzo bym prosil o jakis przyklad ? chociaz szablonowy...

Nie. opisałem Ci co masz zrobić. Czego nie rozumiesz? Jak próbowałeś? Dlaczego nie chcesz skorzystać z moich rad i liczysz na gotowca?


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 02:19