Autor Zpráva
arnir
Profil
mam formular kde se vybiraji 2 parametry z option.
u prvniho vyberete cenu sluzby a u druheho jeste moznost sluzby.
konkretne si v prvnim option vyberete pocet zobrazeni vasi reklamy a v druhem cas zobrazeni reklamy.
pri vybrani napriklad 100 zobrazeni ktere stoji napriklad 100kc se podle toho zda jste si vybrali zobrazeni po 20s (moznost 1) (vysledna cena = 100) nebo zobrazeni po 30s (moznost2) (vysledna cena = dvojnasobku (200))
mam tento kod:
<script>
var total
var ad;
var time
function price(){
switch(document.getElementById('ad_plan'))
{
case(1):
ad = parseFloat(1.50);
break;
case(2):
ad = parseFloat(7.50);
break;
case(3):
ad = parseFloat(13);
break;
case(4):
ad = parseFloat(37.50);
break;
case(5):
ad = parseFloat(74);
break;
case(6):
ad = parseFloat(145);
break;
case(7):
ad = parseFloat(740);
break;
case(8):
ad = parseFloat(1470);
break;
case(9):
ad = parseFloat(7300);
break;
case(10):
ad = parseFloat(15999);
break;
}

switch(document.getElementById('category'))
{
case(1):
time = 1;
break;
case(2):
time = 2;
break;

}

total = parseFloat(ad * time);
return total;
window.setTimeout("price()",500);

}

document.write(price());
</script>


avsak dokument vypise pouze NaN cili not a number...
v cem je tedy chyba?
dekuji
Leo
Profil
Ty switche (a zvlast ten druhy) jsou monumentalni, slysel jste nekdy o Array? Mimochodem, id prvku nemuze zacinat cislem (viz html), Leo
peta
Profil
arnir
odkaz na stranku s celym kodem. nic? pak babo rad z kristalove koule. Je tu nejake devce, co ma kristalovou kouli? :)

switch(document.getElementById('ad_plan'))
predpokladejme, ze 'ad_plan' je input, pak
objekt_input = document.getElementById('ad_plan')
tim se dostanes na tag INPUT, ktery osem je typu objekt, takze ten switch dela totez, jako bys napsal:
switch(document.body)
switch(Math)
...
viz jakpsatweb - javascript - priklady - formulare
tam je to spravne, protoze pracuje s value.

Nema smysl pokladat dotaz, pokud neznas priklady z jakpsatweb, ktere jsou delane tak jednoduse, az mne to i mrzi, ze tam neni nic slozitejsi, tez.

Druhy problem, kdyz to zmenis na value, tak value je typ string. Takze to cele pak treba obalit tim parseFloat, ktere mas myslim zbytecne kolem cisel.
arnir
Profil
asi na to jdu teda kompletne spatne.
tak jinak. mam tento formular:

<select id="ad_plan" name="ad_plan" >
<option selected value=1>100 Visits $1.50</option>
<option value=2>500 Visits $7.50</option>
<option value=3>1000 Visits $13</option>
<option value=4>2500 Visits $37.50</option>
<option value=5>5000 Visits $74</option>
<option value=6>10000 Visits $145</option>
<option value=7>50000 Visits $740</option>
<option value=8>100000 Visits $1470</option>
<option value=9>500000 Visits $7300</option>
<option value=10>1000000 Visits $15999</option>
</select>

<select id="category" name="category" >
<option selected value=1>30 seconds</option>
<option value=2>60 seconds</option>
</select>


takze kdyz si nekdo zvoli moznost 4 ktera stoji 37.5$
a zobrazovaci cas 30 sekund tak vysledna cena bude 37.5*1
kdyz zvoli 60 sekund tak vysledna cena bude 37.5*2

jak to tedy nejak elegantneji provest?
arnir
Profil
uz to mam.diky moc.stacilo si pozorne precist vsechny vase prispevky a prisel jsem na to :-)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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