| 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: 17 let
|
|||
0