Autor | Zpráva | ||
---|---|---|---|
Richo Profil |
#1 · Zasláno: 23. 5. 2007, 21:30:18
Zdravím. Jsem úplný začátečník v javascriptu. Mám formulář:
Zadám délku, vyberu jestli chci poštovné nebo montáž, zadám počet kusů a mělo by to vypočíst celkovou cenu "celkem". Kromě výpočtu ceny "cena1", který mi poradili na Intervalu to mám určitě blbě. Chtěl jsem se s tím poprat sám, ale nějak to nejde. Vaše případné rady mi budou poučením. Předem moc dík. |
||
peta Profil |
#2 · Zasláno: 24. 5. 2007, 08:17:04 · Upravil/a: peta
kpsatweb - javascript - priklady
0. co ti hlasi JS konzola za chybu? FF - Nastroje - chybova konzola O - Nastroje - javascript - konzola IE - dole vlevo je bud modre "e" nebo zluty vykricnik /!, tak si jej rozklikni 1. zkontroluj si typeOf(cislo) jestli je skutecne integer/float nebo string. scitani stringu probiha: '4' + '1.1' = '41.1'. alert('4'+'1.1') alert('4'*1+'1.1'*1) alert(parseInt('4')+parseFloat('1.1')) viz treba javascript-reference webka, tam je to pekne popsano 2. zkontroluj si, jake hodnoty ti vstupuji do scitani, nasobeni? 3. nekomplikuj si zivot dlouhymi nazvy. Promenna muze mit jednopismenny nazev a treba takovy formular jako "f" je dost jasne :) Samozrejme cena a pod, tam bych dlouhe nazvy nechal. function Recount(f) { f.cena1.value = f.delka.value*1 * f.cena.value*1; f.cena2.value = f.cena1.value*1 + f.doprava.value*1; f.celkem.value = f.cena2.value*1 * f.ks.value*1; } "var cena1 = 0;" smysl tohoto radku mi neni jasny. "f.doprava['post'].value" to je nejaky nesmysl, pole mas nazvane <input type="radio" name="doprava" nikoliv <input type="radio" name="doprava['post']" na to ti musi alert vypsat undefined, ne? function Recount(f) { alert(f.doprava['post']) } http://www.volny.cz/peter.mlich/www.htm#msub8 http://www.volny.cz/peter.mlich/www.htm#mssub11 Kalkulacka (13k) !!!nedokonceno google.com calculator javascript google.com math javascript |
||
sakalik Profil |
#3 · Zasláno: 24. 5. 2007, 08:17:56
toto je blby zapis theform.doprava['post'].value ak chces pristupit k elementu s id skus
document.getElementById("post").value |
||
Richo Profil |
#4 · Zasláno: 25. 5. 2007, 23:25:36
Tak jsem zjistil, že takhle už mi to spočítá celkovou cenu cenu s poštovným:
function Recount(f) { Konzole mi žádnou chybu nehlásí, název jsem upravil, přístup k elementu s "ID" by měl být správný. je to někde tady... na "jak psat web" Takže mě teď trápí právě výběr jednoho z těch radiobutonů |
||
Časová prodleva: 3 dny
|
|||
peta Profil |
#5 · Zasláno: 29. 5. 2007, 07:54:51
" přístup k elementu s "ID" by měl být správný. je to někde tady... "
Tady je spousta veci, co funguji jen v IE. Si to vyzkousej i v tech ostatnich prohlizecich. Kazdopadne vyber z radio je pres checked, tam myslim value nebere. Ale pres JS by se to mozna dalo pouzit. Jenom si treba overit nejdriv checked a pak vytahnout hodnotu value z toho sameho inputu. jakpsatweb - javascript - priklady - formulare |
||
Anonymní Profil * |
#6 · Zasláno: 30. 5. 2007, 21:06:45
Tak už to počítá. Nakonec jsem našel řešení v učebnici Javascriptu (nevím teď kdo to napsal, já jsem si ji stáhnul...)
<script language="JavaScript" type="text/javascript"> Tak teď toto pošlu nějakým PHP scriptem na mail. Je mi jasné jak pošlu vybranou cenu radiobutonu. Nevíte někdo jak uvést v proměnné PHP scriptu zatržení buď poštovného, nebo montáže? |
||
Časová prodleva: 3 dny
|
|||
Richo Profil |
#7 · Zasláno: 2. 6. 2007, 09:19:01
tak už bych to celkem měl. Mám ve funkci Recount výběr hodnoty jednoho z radiobutonu:
for (i = 0; i < document.forms[0].doprava.length; i++) if (document.forms[0].doprava[i].checked) cena2 = document.forms[0].doprava[i].value + " "; Ta se převede do skrytého inputu name="cena2" V obslužném PHP souboru mám proměnnou $doprava=($_POST['cena2']); Ale, když tam mám: echo $doprava; tak mi to tu hodnotu nevypíše. nevíte čím to je? |
||
Časová prodleva: 3 dny
|
|||
Richo Profil |
#8 · Zasláno: 5. 6. 2007, 21:12:02
Tak už to skoro mám. "cena2" byla špatně nasměrovaná. Jinak to šlape. Všem díky za snahu.
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0