Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Formularz a przycisk "przelicz"
Forum PHP.pl > Forum > Przedszkole
busyboy
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
Posio
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.
r4xz
+ 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)
kamil4u
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
Posio
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
kamil4u
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.
busyboy
Bardzo bym prosil o jakis przyklad ? chociaz szablonowy...
kamil4u
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?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.