Autor Zpráva
RRR
Profil
dobrý den, jsem amatér a momentálně se snažím o pro někoho možná triviální záležitost. Mám dvě select tlačítka, která vybírají počet objednaného zboží.
www.ranam.cz/robin/kalkulacka Tento počet se násobí s cenou produktu a cena se zobrazí v levém horním rohu. nefunguje mi to ale u obou tlačítek :( Zároveň se obávám že se hodnoty z obou tlačítek nebudou sčítat. Znali byste způsob, jak toto vyřešit?
html část kódu:
<body bgcolor="#A0A0A0" vlink="blue" link="blue">


<div id="page1-div" style="position:relative;width:892px;height:1263px;">
<img align="center" width="892" height="1263" src="001.jpg" alt="background image"/>
    
<form method="post"  name="dphform">
    <div class="dph"><!--zde je první tlačítko-->
        <tr>
    <td class="c_field"><select name="rok" hidden ><option /></select></td>
    </tr>
<span style="position: absolute; top: 1150px; left: 235px; z-index: 1"<img src="001.jpg">
<tr>
    <td class="c_field"><select name="sazbadph"><option /></select>
    <input size="4" name="sazbadphtext" type="text" /></td>
</tr>
</span>
</div>
    <div class="dph1"> <!--zde je druhé tlačítko-->
        <tr>
    <td class="c_field"><select name="rok1" hidden ><option /></select></td>
    </tr>
<span style="position: absolute; top: 1150px; left: 680px; z-index: 1"<img src="001.jpg">
<tr>
    <td class="c_field"><select name="sazbadph1"><option /></select>
    <input size="4" name="sazbadphtext1" type="text" /></td>
</tr>
</span>
</div>
    <div class="dph2"> <!--zde se vypisuje cena-->
    <td class="c_field"><input class="aktivni"size="9" value="1" name="bezdph"hidden /></td>
    <span style="position: fixed; top: 1px; left: 1px; z-index: 1"<img src="001.jpg">
<tr><th>cena celkem:</th>
    <td class="c_field"><input size="4" value="0" name="dph" type="text" /></td>
    <td>Kč</td></tr>
<tr>
    <td class="c_field"><input value="1" name="zaokrouhlitdph" type="checkbox"hidden /></td>
    <td></td>
</tr>
</span>    
</div>
</td>
</div>

a JS část:
sazby = {'produkt'    : '0,1karton,2kartony,3kartony,4kartony,5kartonů,6kartonů,7kartonů,8kartonů,9kartonů',
}//zde je první tlačítko
Number.prototype.round=function(p){z=Math.pow(10,p);return Math.round(this*z)/z};
fill_roky(document.forms['dphform']['rok'],sazby)
calc_dph('rok')
calc_dph('bezdph')
function fill_roky(fi,sazby){
    fo = fi.form
    rok = fo['rok']
    rok.options.length = 0    
    for (crok in sazby){
        rok.options[rok.options.length] = new Option(crok, sazby[crok]);
    }
    rok.options[rok.options.length-1].selected=true
    for (i=0;i<fo.length;i++){
        f=fo[i]
        f.onchange=function(e){calc_dph(this)}    
    }
}
function calc_dph(fi){
    if (typeof fi == "string") fi = document.forms['dphform'][fi]
    fo = fi.form
    sazbadph = fo['sazbadph']
    sazbadphtext = fo['sazbadphtext']
    bezdph = fo['bezdph']
    dph = fo['dph']
    zaokrouhlit = fo['zaokrouhlitdph'].checked
    if ('rok'==fi.name) {
        if (rok.value=='jine') {        
        } else {
            sazbadphtext.style.display='none'
            sazby = rok.value.split(',')
            if (sazby.length==1){
            } else {
                sazbadph.options[0] = new Option(sazby[0]);
                sazbadph.options[1] = new Option(sazby[1]);
                sazbadph.options[2] = new Option(sazby[2]);
                sazbadph.options[3] = new Option(sazby[3]);
                sazbadph.options[4] = new Option(sazby[4]);
                sazbadph.options[5] = new Option(sazby[5]);
                sazbadph.options[6] = new Option(sazby[6]);
                sazbadph.options[7] = new Option(sazby[7]);
                sazbadph.options[8] = new Option(sazby[8]);
                sazbadph.options[9] = new Option(sazby[9]);
            }
            
        };
    }    
    if (fi.name=='sazbadph'||!sazbadphtext.value)sazbadphtext.value=sazbadph.value
    if (' bezdph cenasdph dph sazbadphtext '.indexOf(' ' + fi.name + ' ')>=0){
        if (window.last_fi_name!=fi.name){
        }
    }
    sazbadph_value = parseFloat(sazbadphtext.value)
    switch (window.last_fi_name) {    
        case 'dph':
            if(zaokrouhlit)zaokrouhli(dph) 
            bezdph.value=mn(42*parseFloat(dph.value)/sazbadph_value,zaokrouhlit)
            break;
        default:
            if(zaokrouhlit)zaokrouhli(bezdph) 
            dph.value=mn(42*sazbadph_value*bezdph.value,zaokrouhlit)
            break;
    }    
}
sazby1 = {'produkt1'    : '0,1karton,2kartony,3kartony,4kartony,5kartonů,6kartonů,7kartonů,8kartonů,9kartonů',    
}//zde je druhé tlačítko
Number.prototype.round=function(p){z=Math.pow(10,p);return Math.round(this*z)/z};
fill_roky(document.forms['dphform']['rok1'],sazby1)
calc_dph('rok1')
calc_dph('bezdph')
function fill_roky(fi,sazby1){
    fo = fi.form
    rok1 = fo['rok1']
    rok1.options.length = 0    
    for (crok in sazby1){
        rok1.options[rok1.options.length] = new Option(crok, sazby1[crok]);
    }
    rok1.options[rok1.options.length-1].selected=true
    for (i=0;i<fo.length;i++){
        f=fo[i]
        f.onchange=function(e){calc_dph(this)}    
    }
}
function calc_dph(fi){
    if (typeof fi == "string") fi = document.forms['dphform'][fi]
    fo = fi.form
    sazbadph1 = fo['sazbadph1']
    sazbadphtext1 = fo['sazbadphtext1']
    bezdph = fo['bezdph']
    dph = fo['dph']
    zaokrouhlit = fo['zaokrouhlitdph'].checked
    if ('rok1'==fi.name) {
        if (rok1.value=='jine') {        
        } else {
            sazbadphtext1.style.display='none'
            sazby1 = rok1.value.split(',')
            if (sazby1.length==1){
            } else {
                sazbadph1.options[0] = new Option(sazby1[0]);
                sazbadph1.options[1] = new Option(sazby1[1]);
                sazbadph1.options[2] = new Option(sazby1[2]);
                sazbadph1.options[3] = new Option(sazby1[3]);
                sazbadph1.options[4] = new Option(sazby1[4]);
                sazbadph1.options[5] = new Option(sazby1[5]);
                sazbadph1.options[6] = new Option(sazby1[6]);
                sazbadph1.options[7] = new Option(sazby1[7]);
                sazbadph1.options[8] = new Option(sazby1[8]);
                sazbadph1.options[9] = new Option(sazby1[9]);
            }
        };
    }    
    if (fi.name=='sazbadph1'||!sazbadphtext1.value)sazbadphtext1.value=sazbadph1.value
    if (' bezdph cenasdph dph sazbadphtext1 '.indexOf(' ' + fi.name + ' ')>=0){
        if (window.last_fi_name!=fi.name){
        }
    }
    sazbadph1_value = parseFloat(sazbadphtext1.value)
    switch (window.last_fi_name) {    
        case 'dph':
            if(zaokrouhlit)zaokrouhli(dph) 
            bezdph.value=mn(47*parseFloat(dph.value)/sazbadph1_value,zaokrouhlit)
            break;
        default:
            if(zaokrouhlit)zaokrouhli(bezdph) 
            dph.value=mn(47*sazbadph1_value*bezdph.value,zaokrouhlit)
            break;
    }    
}
function set_value(n,v){
    for (ke=document.getElementsByName(n), i=0; i<ke.length; i++) {
        try {ke[i].innerHTML = v }
        catch(e){}
    }    
}
function mn(n,zaokrouhlit) {
    if(!n)return 0
    if (zaokrouhlit)return parseFloat.toFixed(2);
    else return parseFloat(n).toFixed(2); 
}
kód vychází z DPH kalkulačky
Díky za jakékoliv rady.
_es
Profil
RRR:
kód vychází z DPH kalkulačky
Radšej by som „vychádzal“ z nejakého iného kódu.
Treba si uvedomiť, kedy ide o číslo a kedy o textový reťazec: Časté potíže, zajímavosti a poučné debaty » Součet čísel versus součet řetězců.
Viď aj Časté potíže, zajímavosti a poučné debaty » Používejte var.
RRR
Profil
_es:
děkuji, budu se tím řídit

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0