Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][?]Dynamiczne liczenie kwoty brutto po wybraniu stawki vat
Marr
post
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 1
Dołączył: 19.08.2008
Skąd: Warszawa

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


Witam,
Mam problem, potrzebuję zrobić formularz w którym do jednego pola wprowadzamy kwotę netto, następnie wybieramy z rozwijanej listy stawkę vat i po wyborze stawki dynamicznie pokazuje nam się w następnym polu policzona kwota brutto. Nie za bardzo wiem, z której strony to ugryźć i proszę o pomoc. (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
ferrero2
post
Post #2





Grupa: Zarejestrowani
Postów: 171
Pomógł: 32
Dołączył: 5.08.2008
Skąd: Lublin

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


Jeśli ma to wyglądać tak jak mówisz czyli bez żadnego buttona ("policz") to musi być Java wsadzona do zdarzenia onchange dla comboboxa.
Jesli z przyciskiem to tworzysz sobie funkcję php która mnoży podatek vat razy cene którą wpisał. Jeśli jest to formularz z metodą POST to tworzysz input text o nazwie cena i combobox o nazwie vat potem tylko wykonujesz mnożenie po naciśnięciu przycisku $_POST[cena'] * $_POST['vat'] i zapisujesz np w zmiennej $_POST['wynik']. Po wykonaniu funkcji wypełniasz input (wynik) zmienną $_POST['wynik']. Tylko że bez Javy czy AJaxa to musi się odbyć po przeładowaniu strony.

Pozdrawiam
Go to the top of the page
+Quote Post
Marr
post
Post #3





Grupa: Zarejestrowani
Postów: 103
Pomógł: 1
Dołączył: 19.08.2008
Skąd: Warszawa

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


Właśnie tak myślałem, że będzie trzeba jakiegoś innego cuda użyć... a mógłby mnie ktoś nakierować na taką funkcję w javascript najlepiej? Dopiero zaczynam więc proszę o wyrozumiałość (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Dzięki za wole pomocy teraz i poprzednio ferrero2 - podziękował (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
Go to the top of the page
+Quote Post
Trojan
post
Post #4





Grupa: Zarejestrowani
Postów: 53
Pomógł: 10
Dołączył: 17.01.2008

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


  1. <script>
  2.      function podlicz(){
  3.      kwota = document.getElementById("kwota").value;            //pobiera wartości z input-a o id="kwota"
  4.      podatek = document.getElementById("podatek").value;            //pobiera wartość z select-a o id="podatek"
  5.      wynik = kwota*(1+podatek/100);                                    //ooblicza wynik
  6.      document.getElementById('wynik').innerHTML=wynik;            //zapisuje wynik w span-ie o id="wynik"
  7.      }
  8. </script>
  9.  
  10. <input size="20" MAXLENGTH="20" id="kwota" name="kwota" type="text" value="" onkeyup="podlicz();">
  11.  
  12. <select id="podatek" onchange="podlicz();">
  13. <option VALUE="22">22 %</option>
  14. <option VALUE="7">7 %</option>
  15. <option VALUE="33">33 %</option>
  16. </select>
  17.  
  18. <span id="wynik"></span>


w input jest zdarzenie onkeyup wywołuje ono funkcje podliczająca przy każdej zmianie wartości w tym polu
w select jest zdarzenie onchange wywołuje ono funkcje podliczająca przy każdej zmianie opcji podatku

mam nadzieje ze to jest jasne ;]

Ten post edytował Trojan 21.08.2008, 16:18:02
Go to the top of the page
+Quote Post
Marr
post
Post #5





Grupa: Zarejestrowani
Postów: 103
Pomógł: 1
Dołączył: 19.08.2008
Skąd: Warszawa

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


extra! wielkie dzięki, dokładnie o to mi chodziło! Działa świetnie, a temat można zamknąć.

EDIT: Oho, jeszcze jednak nie;] a jak zrobić by wynik był zaokrąglany do 2 cyfr po przecinku? jeżeli wprowadzę kwotę netto z groszami to wynik ma po przecinku 4 miejsca - a tak być nie może (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

EDIT 2: Mam jeszcze jeden problem z tym związany. Nie wychodziło mi, by tą funkcję wpisać do inputa tylko do odczytu więc pomyślałem, że liczenie podatku wykonam też w pliku wykonującym dodanie zawartości formularza do bazy. Mój problem polega na tym, że jeżeli wstawiam zawartość do kolumny typu int to jest wszystko pięknie, a jeżeli do floata np. (6,2) to liczba wskakuje mi już po przecinku i nie wiem dlaczego... np. kwota brutto wynosi 232.12 a w bazie wpada w formie 0.23 ocb? (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) (IMG:http://forum.php.pl/style_emoticons/default/czarodziej.gif) (IMG:http://forum.php.pl/style_emoticons/default/withstupidsmiley.gif)

Ten post edytował Marr 22.08.2008, 09:28:48
Go to the top of the page
+Quote Post
ferrero2
post
Post #6





Grupa: Zarejestrowani
Postów: 171
Pomógł: 32
Dołączył: 5.08.2008
Skąd: Lublin

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


Zaokrąglenia dokonujesz funkcją round np :

Kod
$inna = 12;
$all = 100;
$liczba = ($inna / $all)*100;
$inna2 = round($liczba,2); #gdzie cyfra oznacza ilość miejsc po przecinku


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





Grupa: Zarejestrowani
Postów: 103
Pomógł: 1
Dołączył: 19.08.2008
Skąd: Warszawa

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


Dzięki ferrero2, z tym, że potrzebowałem zaokrąglić liczbę w javascript a nie w php - bo w javie chyba dostałem kod od Trojana. Niemniej z zaokrągleniem już sobie poradziłem używając Math.round ale nadal mam problem z wpisywaniem zawartości brutto do kolumny float, ponieważ kwota wpada mi ciągle po przecinku (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) nikt nie pomoże?

EDIT: ojejku mam dałna... ciekawe jak miało działać poprawnie jak w miałem .$brutto podczas dodawania zawartości do bazy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Problem rozwiązany. dzięki

EDIT2 : Mam kolejny problem... nie mogę sobie poradzić z takim czymś: mam formularz, w którym są generowane checkboxy na podstawie zawartości kolumny w bazie mysql. przy każdym checkboxie stoi pole input ilość i obok wyświetlona jest cena usługi. Chciałbym by po zmianie wartości ilość cena była liczona dynamicznie. Probowałem użyć to skryptu od Trojana tyle, że zaciąłem się bo nie wiem przecież jakie nazwy mi się wygenerują więc nie wiem do jakich elementów mam się odwoływać w JS (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

  1. <head>
  2. <script language="JavaScript" src="calendar1.js"></script>
  3. </head>
  4. <form action="admin.php?action=order_update" method="post" name="ord_form">
  5. <table width="80%">
  6. <tr>
  7. <td colspan="2"> Nowe zamowienie</td>
  8. </tr>
  9. <tr>
  10. <td id="formlabel">Klient</td>
  11. <td> <select name="ord_customer">
  12. <?php
  13. $zapytanie = mysql_query ("SELECT * FROM klienci ORDER BY nazwa;");
  14. while ($rekord = mysql_fetch_assoc ($zapytanie)) {
  15. $id = $rekord['id'];
  16. $nazwa = $rekord['nazwa'];
  17. $ulica = $rekord['ulica'];
  18. $numer = $rekord['numer'];
  19. $miasto = $rekord['miasto'];
  20.  
  21. echo("
  22. <option value='$nazwa'>$nazwa</option>
  23. ");
  24. }
  25. ?>
  26. </select> </td>
  27. </tr>
  28. <tr>
  29. <td id="formlabel">Usluga</td>
  30. <td> <table cellpadding="0" cellspacing="0">
  31. <?php
  32. $zapytanie = mysql_query("SELECT * FROM uslugi ORDER BY nazwa");
  33. while($wynik = mysql_fetch_array($zapytanie)){
  34. echo '<tr>
  35. <td width="200px"><input type="checkbox" name="checkboxy[]" value="'.$wynik['id'].'" />'.$wynik['nazwa'].'</td>
  36. <td><input type="input" size="2" name="mnoznik_'.$wynik['id'].'"/>
  37. <td align="left" width="50px"> cena: </td><td align="right"> '.$wynik['cenabrutto'].' zł</td>
  38. </tr>';}
  39. ?>
  40. </table></td>
  41. </tr>
  42. <tr>
  43. <td id="formlabel">Status</td>
  44. <td> <select name="ord_status">
  45. <option>Zrealizowano </option>
  46. <option>W realizacji</option>
  47. </select></td>
  48. </tr>
  49. <tr>
  50. <td id="formlabel">Data zlozenia</td>
  51. <td><?php echo date('m.d.y');?></td> 
  52. </tr>
  53. <tr>
  54. <td id="formlabel">Data realizacji</td>
  55. <td> <input type="Text" name="ord_date" value="" readonly="readonly" /> <a href="javascript:cal1.popup();"><img src="img/cal.gif" width="16" height="16" border="0" alt="Kliknij, by wybrac date"></a></td>
  56. </tr>
  57. <tr>
  58. <td colspan="2" align="left" > <input type="submit" value="dodaj" /> </td>
  59. </tr>
  60. </table>
  61. </form>
  62. <script language="JavaScript">
  63. var cal1 = new calendar1(document.forms['ord_form'].elements['ord_date']);
  64. cal1.year_scroll = true;
  65. cal1.time_comp = false;
  66. </script>


Ten post edytował Marr 27.08.2008, 14:38:35
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: 23.08.2025 - 23:06