Počítací javascript nejavascriptí
Jsem si myslel, že když ten losův počítací javascript předělám na:
<script type="text/javascript" language="JavaScript">
<!--
function change ()
{
var inputA = document.getElementById ("format")
var inputB = document.getElementById ("format_result")
var inputC = document.getElementById ("slevy")
var inputD = document.getElementById ("slevy_result")
var inputE = document.getElementById ("umisteni")
var inputD = document.getElementById ("umisteni_result")
var inputG = document.getElementById ("konecna_bez_dph")
var inputH = document.getElementById ("konecna_s_dph");
var a = inputA.value - 0;
var b = inputB.value - 0;
var c = inputC.value - 0;
var d = inputD.value - 0;
var e = inputE.value - 0;
var f = inputC.value - 0;
var g = inputD.value - 0;
var h = inputE.value - 0;
inputA.value = "" ;
inputB.value = 0 + (isNaN (format)? "": format_result);
inputC.value = "" ;
inputD.value = c + (isNaN (slevy)? "": slevy_result);
inputE.value = "" ;
inputF.value = b - d + (isNaN (umisteni)? "": umisteni_result);
inputG.value = b * c + f ;
inputH.value = b * c + f * 119;
}
//-->
</script>
že se mi to bude počítat ale nepočítá bůůů. Ta pole format slevy, umístění, mám roletky a v polích s result se mi po vybrání neobjeví nic. Asi bude chybka hned v tom prvnim.
Prosím prosím co mám blbě?
A k jakému prvku a na jakou událost máš pověšenou funkci change()?
Já tam pak mám vždy "roletku", kde si vybere a pod tím je okénko, kde by se to mělo objevit. Je tam např.
a to okénko pod tím
až budu velký, chtěl bych být programátorem.
U toho selectu místo onkeyup="change()" dej onchange="change();".
Ještě tam budu mít chybku. Při pokusu o vybrání z roletky píše, že "formát není definováno". To bude něco s tímto, nevím co
Nahraď
tímto:
podobně to aplikuj i dále ve scriptu s slevy, slevy_result, umisteni a umisteni_result.
edit: Podotýkám že nekontroluji správnost algoritmu, pouze odstraňuji chyby s nedefinovanými proměnnými.
super, už to vypadá slibně, jen jsem nemehlo a furt se mu něco nelíbí. Teď pro změnu, že input F není definováno, mám to takto:
už se mi u toho prvního objevuje nula.
Myslím že už sem pochopil co chceš aby to dělalo. Zkus to ještě takto:
Myslím že by ti to už mělo fungovat.
Ted se mu pro změnu nelíbí jiný řádek. Prý
var f = inputF.value - 0;
Prototyp jsem hodil na web
http://krata.bubakov.net/www/gelton/formular-sl_lis ty.html
Ve FF to žádnou chybu nehlásí..... ale ani nic nepočítá.
FF je mlčenlivý. PSPad říká toto
Takže:
script:
potom první select:
druhý select:
třetí select:
chce si to ještě malinko věcí vychytat (jako například zobrazovat nulu pokud ještě nebylo nic vybráno, atd.), ale už to aspoň počítá.
jupíííííííííííííí to je super. Ono mi to hlásilo něco s tím H. Ale zrovna psal ten kámoš z novin, že s DPH to nechce. Vyhodil jsem H a jede to.
Ono zobrazování nul by se mi též líbilo a ještě víc by se mi líbilo nějaké zaokrouhlování na celé, aby tam nebylo např. 180.00000000000003.
Se mi to počítá, ale nějak úplně divně. když zvolím v první roletce ten základ, neobjeví se nic. Až teprve, když zvolím něco jiného a pak ten základ, objeví se 300. Když nechám všechna ostatní na 0, tak je na konci pokaždé jiné číslo, ale nikdy těch 300.
jdu si hrát.
http://krata.bubakov.net/www/gelton/formular-sl_lis ty.html
Dneska večer bych se na to moh zkusit ještě podívat, pokud jsi to teda už nevyřešil.
Já tu něco pořešil, ale furt mi tam někde dělá paseku ta částka za umístění. Když je 0, přičte se těch 50 % a když je 50 %, nestane se nic.
Budu také odpoledne a večer.
Tak jsem došel k tomu, že když nevyplní nic, jsou tam předepsané hodnoty. Když v první roletce vybere inzerát za 600, tak se to ale v tom celkem nepřehodí na 600. Nepřehodí se tam nic, dokud něco neudělá se všemi třemi roletkami (formát, počet, umístění), přitom když vybere slevu za opakování a na umístění nebude vůbec sahat, tak by se to mělo také v celkem převexlovat na třeba 570. Navíc ono umístění mi tam dělá paseku. nejdříve se to počítalo blbě, ted pro změnu vůbec...
Výpočet tam teď mám
a u toho umístění select
Neviem, či si to už vyriešil, ale podľa toho, čo som čítal na jakpsatweb, tak asi nie.
Tam Ti radil niekto použiť funkcie parseInt alebo parseFloat, ale to je blbosť, pretože konverziu na číslo už robíš odpočítaním nuly. Teraz napríklad vidím, že na webe máš parseFloat - to vyhoď.
Skontroluj si, či počítaš s dobrými hodnotami, ako Ti tam dobre radí Joker:
Ak chceš zobrazovať nulu v prípade, že sa nepodarilo vypočítať výsledok, tak kontroluj, či je výsledok číslo funkciou isNaN tak, ako to máš v pôvodnom skripte, ale namiesto prázdneho reťazca tam daj reťazec, v ktorom je nula.
Na zaokrúhľovanie môžeš použiť Math.round (zaokrúhlenie k najbližšiemu celému číslu), Math.floor (zaokrúhlenie nadol) alebo Math.ceil (zaokrúhlenie nahor).
A hlavne čítaj chybové hlásenia. Keď Ti to predtým vypisovalo, že inputF nie je definované, tak na to si mohol prísť sám. FF nie je mlčanlivý, ale ak chceš vidieť takéto chyby, tak si musíš otvoriť konzolu s JavaScriptom - potom stačí kliknúť na odkaz pri chybe a rovno Ti to ukáže, kde nastala (na rozdiel od IE).
Já to snad nedokážu. 1 000 000 pokusů, všechno blbě. Skončil jsem u
a to už mi nechodí vůbec, že prý format není definováno a rty nuly se mi tam také neobjevily.
Hurá už jsem to s tím od jokera částečně rozchodil. Jen když se ta stránka načte, mělo by se objevit "předvyplněné", jako když si objedná nejmenší inzerát za 300, bez opakování a standardní umístění. Tím tam naskočí i nuly a výsledek.
celé to mám takto
co dát u toho a value 300?
Hip hip hip hurá, dal jsem do těla dokumentu k inputům value a chodí to tak, jak jsem chtěl. Děkuji všem za pomoc, považuji to za vyřešené, jdu dělat odesílání.
ještě matematický oříšek. On je ten výpořet špatně zadaný, jelikož to nepočítá slevu třeba na 3, ale pouze z jednoho. Teď je tam
a = select typ inzerátu
b = zobrazí se výběr z "a" v Kč
c = select pro zadání opakování
d = result slev (chybí * počet inzerátů)
e = select na výběr místa (příplatek)
f = result na místo
g = celkem
1) V políčku "Za opakování Vám slevíme" se nesčítají slevy, ale je tam jen sleva z jednoho inzerátu.
Příklad: Základní sazba za zvolený formát inzerátu: 300 Kč
Počet zveřejnění: 3 x (10 % sleva)
Sleva: 90 Kč (ukazuje to tam ale pouze 30 Kč, tedy pouze slevu za jeden
inzerát)
2) V políčku "Konečná cena inzerátu" se ukazuje cena pouze za jeden inzerát, přestože si jich objedná třeba 3.
Možná by stačilo změnit hodnoty value a toho selectu na slevy a onen příklad počítat jinak. Místo b/100... nějaké * 0.95...
Ten select teď je
http://krata.bubakov.net/www/gelton/formular-sl_lis ty.html