Autor | Zpráva | ||
---|---|---|---|
tomyx007 Profil |
#1 · Zasláno: 10. 8. 2009, 20:48:07
Dobrý den,
prosím o radu mám formulář, kde se dynamicky natahují jednotlivé produkty od výrobců do 3 skladů, těchto výrobků je jednou 10, pak 7 atd. po různu...Snažím se vymyslet javascriptovou funkci, která by po změmě množství jednitlivého zboží přepočítala výslednou cenu. Doposud jsem došel k tomuto řešení, ukázka pro jednoho výrobce: <script style="text/javascript"> function calculatePrice(idVyrobce) { if (idVyrobce == "vyrobce_1") { var vyslednaCena = document.getElementById("cena_vyr1001").value * document.getElementById("ob1_vyr1001").value + document.getElementById("cena_vyr1001").value * document.getElementById("ob2_vyr1001").value + document.getElementById("cena_vyr1001").value * document.getElementById("ob3_vyr1001").value + document.getElementById("cena_vyr1002").value * document.getElementById("ob1_vyr1002").value + document.getElementById("cena_vyr1002").value * document.getElementById("ob2_vyr1002").value + document.getElementById("cena_vyr1001").value * document.getElementById("ob3_vyr1002").value + document.getElementById("cena_vyr1003").value * document.getElementById("ob1_vyr1003").value + document.getElementById("cena_vyr1003").value * document.getElementById("ob2_vyr1003").value + document.getElementById("cena_vyr1003").value * document.getElementById("ob3_vyr1003").value; document.getElementById("vyrobce_1").innerHTML = vyslednaCena; } } </script> <form action="" method="post"> <table> <tr> <td> Nazev vyrobku </td> <td> cena vyrobku </td> <td> mnozstvi na sklade A </td> <td> mnozstvi na sklade B </td> <td> mnozstvi na sklade C </td> </tr> <tr> <td> vyrobek 1 </td> <td> <input type="text" id= "cena_vyr1001" name="cena_vyr1001" value="100" disabled /> </td> <td> <input type="text" id="ob1_vyr1001" name="ob1_vyr1001" value="36" onKeyUp="calculatePrice('vyrobce_1');"/> </td> <td> <input type="text" id="ob2_vyr1001" name="ob2_vyr1001" value="10" onKeyUp="calculatePrice('vyrobce_1');"/> </td> <td> <input type="text" id="ob3_vyr1001" name="ob3_vyr1001" value="12" onKeyUp="calculatePrice('vyrobce_1');"/> </td> </tr> <tr> <td> vyrobek 2 </td> <td> <input type="text" id="cena_vyr1002" name="cena_vyr1002" value="150" disabled/> </td> <td> <input type="text" id="ob1_vyr1002" name="ob1_vyr1002" value="22" onKeyUp="calculatePrice('vyrobce_1');"/> </td> <td> <input type="text" id="ob2_vyr1002" name="ob2_vyr1002" value="34" onKeyUp="calculatePrice('vyrobce_1');"/> </td> <td> <input type="text" id="ob3_vyr1002" name="ob3_vyr1002" value="2" onKeyUp="calculatePrice('vyrobce_1');"/> </td> </tr> <tr> <td> vyrobek 3 </td> <td> <input type="text" id="cena_vyr1003" name="cena_vyr1003" value="22" disabled/> </td> <td> <input type="text" id="ob1_vyr1003" name="ob1_vyr1003" value="1" onKeyUp="calculatePrice('vyrobce_1');"/> </td> <td> <input type="text" id="ob1_vyr1003" name="ob2_vyr1003" value="2" onKeyUp="calculatePrice('vyrobce_1');"/> </td> <td> <input type="text" id="ob1_vyr1003" name="ob3_vyr1003" value="4" onKeyUp="calculatePrice('vyrobce_1');"/> </td> </tr> <tr> <td colspan="5" align="right">vysledna cena: <span id="vyrobce_1">14554</span></td> </tr> </table> </form> Jenomže tenhle javascript to počítá staticky :( což nejde použít když se mění počet položek od výrobce dynamycky. Děkuju za každou radu |
||
AM_ Profil |
#2 · Zasláno: 10. 8. 2009, 21:01:23
„Jenomže tenhle javascript to počítá staticky :(“
???? celé je to trochu zvláštní, cena se počítá tak, že se násobí množství na všech 3 skladech cenou výrobku? Navíc nechápu - mění se dynamicky? když se něco mění, je to dynamické, když se to nemění, je to statické :) počet výrobků zřejmě budeš muset natáhnout do dokumentu přes server-side skript (PHP?) do stránky, předpokládám, že jsou uložené v nějaké databázi nebo tak něco. |
||
tomyx007 Profil |
#3 · Zasláno: 10. 8. 2009, 21:30:15 · Upravil/a: tomyx007
Ano, cena se nasobi mnozstvim na vsech trech skladech, data jsou natazena z databaze, pres php zobrazeny, cena je sice staticka, ale mnozstvi zbozi na skladech A,B,C se meni a pak se meni vysledna cena. Je to tak, ze mohu zmenit mnozstvi nejakeho vyrobku na sklade a hned vydim, kolik by me to stalo a pak bych dal odeslat objednavku na doplneni skladu...
|
||
AM_ Profil |
#4 · Zasláno: 11. 8. 2009, 10:26:41
ale vždyť to takhle funguje, když změníš číslo v daném input poli, které určuje počet výrobků, ta funkce to s ním už přepočítá :)
přece je blbost, aby javascript počítal s tím číslem, které bylo v tom inputu předtím, to ani nejde... pokud se ti nic nepřepočítává, máš zřejmě v javascriptu chybu |
||
Časová prodleva: 15 let
|
0