Autor Zpráva
eiger33
Profil
Ahojte,
robim jeden obchod a chcem aby sa mi pri zmene tovaru automaticky menila cena vyslednej zostavy. Neviete kde mam chybu alebo co mi chyba?
tu je script v hlavicke:
<script language='JavaScript' type='text/JavaScript'>
function scitaj(field)
		{
			var form=document.config;
			var suma=0;

			for(i=0; i<form.elements.length; i++)
			{
				if (form.elements[i].type=="select-one")
				{
					if (cena[form.elements[i].value]!=0)
					{
						suma += cena[form.elements[i].value];
					}
				}
			}

			suma=suma*form.pocet_zostav.value;
			suma_cela=parseInt(suma);
			suma_desa=suma-suma_cela;

			suma_t = new String(suma_cela);

			pocet=suma_t.length;
			pocet_z=pocet%3;

			if(pocet_z==0)
				count=Math.ceil(pocet/3)+1;
			else
				count=Math.ceil(pocet/3);

			for(i=0; i<count; i++)
			{
				if(i==0)
					suma_new=suma_t.substring(0, pocet_z);
				else
					suma_new=suma_new+suma_t.substring((i-1)*3+pocet_z, i*3+pocet_z);
				if(i+1!=count)
					suma_new=suma_new+" ";
			}

			suma_new=suma_new+",00 Sk";

			if(field==0)
				form.cena.value = suma_new;
			else
			{
				form.cena_config.value = suma_new;
			}
		}
</script>


tu je cast html:
<div class="rozdelenie" onchange="scitaj(1);">Monitor:</div>
	<select name="monitor">
	<option value="">... vyberte ...</option>
				<option value="MONLCDLGL207WT-PF" >LG 20" LCD L207WT-PF 2ms 5000:1  DVI + 9318.00SKK</option>

				<option value="MONLCDASUS22PG221" >ASUS 22" LCD PG221 2ms DVI + 16744.00SKK</option>
				<option value="MONLCDLGL225WS-SF" >LG 22" LCD L225WS-SF 5ms 3000:1 + 8509.00SKK</option>
				<option value="MONLCDNO8DP8" >LCD PHOTO FRAME NOVITA 8" DP8 + 3926.00SKK</option>
				<option value="MONLCDBENQ1551G+" "style="color:red;" >BENQ 15" LCD FP51G+ + 5093.00SKK</option>
				<option value="MONLCDACERAL1716F" "style="color:red;" >ACER 17" LCD AL1716F - 5ms + 5734.00SKK</option>
				<option value="MONLCDBENQ17700G" >BENQ 17" G700 + 5270.00SKK</option>

				<option value="MONLCDPHILIPS170S8FS" "style="color:red;" >PHILIPS 17" 170S8FS + 5962.00SKK</option>
				<option value="MONLCDACERAL1916WAS" "style="color:red;" >ACER 19" LCD AL1916WAs 5ms, širokouhlý + 5773.00SKK</option>
				<option value="MONLCDACERAL1916CS" "style="color:red;" >ACER 19" LCD AL1916Cs 5ms + 6486.00SKK</option>
				<option value="MONLCDACERAL1951ES" "style="color:red;" >ACER 19" LCD AL1951Es - 2ms/DVI + 8057.00SKK</option>
				<option value="MONLCDASUS19VW193D" >MONITOR LCD -- ASUS 19" VW193D Wide 5ms + 5702.00SKK</option>
				<option value="MONLCDASUS19VW193S" >MONITOR LCD -- ASUS 19" VW193S Wide 5ms repro + 5890.00SKK</option>

				<option value="MONLCDASUS19VB191T" >ASUS 19" LCD VB191T 5ms DVI + 6664.00SKK</option>
				<option value="MONLCDASUS19VW195U" >MONITOR LCD -- ASUS 19" VW195U Wide 2ms DVI repro + 7057.00SKK</option>
				<option value="MONLCDBENQ19900W" >BENQ 19" G900WA + 5497.00SKK</option>
</select>


dalej je tu moznost zvolit kolko kusov a malo by to vypisat cenu:
<td align="left" colspan="2">
<input type="text" name="pocet_zostav" class="textfield" value="1" onchange="scitaj(1);">
</td>

<td class="cena">
<input type="text" name="cena_config" readonly value="0,00&nbsp;Sk" class="cena" style="border:0;background-color:transparent;">
</td>




a tu opat script:
<script language='JavaScript' type='text/JavaScript'>
				<!--
				var cena = new Array(552);
cena['MONLCDLGL207WT-PF']=7830
cena['MONLCDASUS22PG221']=14070
cena['MONLCDLGL225WS-SF']=7150
cena['MONLCDNO8DP8']=3299
cena['MONLCDBENQ1551G+']=4279
cena['MONLCDACERAL1716F']=4818
cena['MONLCDBENQ17700G']=4428
cena['MONLCDPHILIPS170S8FS']=5010
cena['MONLCDACERAL1916WAS']=4851
cena['MONLCDACERAL1916CS']=5450
cena['MONLCDACERAL1951ES']=6770
cena['MONLCDASUS19VW193D']=4791
cena['MONLCDASUS19VW193S']=4949
cena['MONLCDASUS19VB191T']=5600
cena['MONLCDASUS19VW195U']=5930
cena['MONLCDBENQ19900W']=4619

	//--></script>

<script language='JavaScript' type='text/JavaScript'>
		scitaj(1);
		scitaj(0);
		</script>



Tych poloziek tam mam viac, nie iba monitor, ale tu som vypisal len tu jednu, nech je to toska prehladnejsie,
nech tuknem na cokolvek, cena dole sa nemeni,
vopred dik
peta
Profil
Co hlasi Js konzola?
Odkaz na soubor?
Jakou chybou se to teda provevuje? At vime, co hledat?
Mno nic, opet ztraceny cas pri cteni spatne otazky...

Kde mam chybu. Vim ja?
eiger33
Profil
na jednu chybicku uz som dosiel, uz vsetko ide, ale len pod .html
A s tym si neviem poradit.
v .php subore mam napisane:

<form action="pridat_zostavu.php" name="config" method="POST" > 


Ale ked si firefoxe po otvoreni stranky pozriem zdrojak, tam mi to vypise len:

<form action="pridat_zostavu.php" method="POST"> 


skusal som to napisat aj pod php:

<?php
echo "<form action='pridat_zostavu.php' name='config' method='POST' >";
?> 


ale vysledok ten isty. Neviete kde moze byt problem?

Skusal som skopirovat vysledny html kod a ulozit ako html + dopisat name="config" a uz to ratalo.
Takze teraz je problem uz len v tom a vobec si neviem vysvetlit ako to vznika.
peta
Profil
eiger33
tezko rici takhle z niceho. asi chyba v PHP kodu. Do JS to asi nepatri.
Tez je mozne, ze jsi se trefil na promennou, ktera je uz zabrana jako klicove slovo. Zkus nekolik prohlizecu a jestli to v nejakem ve zdroji bude, tak je to problem prohlizece. jestli ani v jednom, pak to muze byt a) i b) . spis bych tipoval na chybu v PHP kodu, nejaky nelegalni znak.
A jeste mne napadlo, mozna chyba pisatele, name formulare by se melo pouzit jen 1 pro kazdy novy formular. V okamziku, kdy vice prvku pojmenujes stejne, muze, ale nemusi to fungovat jako pole prvku, muze, ale nemusi ti fungovat vzdy prvni takovy prvek. Muze, ale nemusi to fungovat. Viz hlasky z JS konzoly.
Kdo vi taky, na jaky zdrojak se divas. A jsme zpet na odkazu na stranku.htm a na zdroj.txt

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: