webForumDet fria alternativet

splitfunktion

1 svar · 364 visningar · startad av GustaFsson

GustaFssonMedlem sedan jan. 200534 inlägg
#1

tjena nu har jag ett nytt problem här.

Jag har en dynamisk vikt uträknare och baserar sig på vikt i min webbutik.
Man matar in uppgifterna så här
25:15;100:30;300:190;5000:300;6000:400;7000:500;8000:600
Det blåa är vikten och det röda anger priset för respektive vikt.

Så här räknas frakten ut när man lägger en order:
ASP kod

levPriser=split(RS("leveranssatt_cost"),";")

for each levVikter in levPriser
	lev1Vikt=split(levVikter,":")
	lev1Vikt1 = lev1Vikt(0)
	lev1Vikt2 = lev1Vikt(1)
	sistavikt=lev1Vikt(0)
	sistacost=lev1Vikt(1)
	if ""&(levVikt*1000)&""=<""&lev1Vikt1&"" and fraktkostnad=0 then
		fraktkostnad=lev1Vikt2
	end if
next

Denna funkar prima, men nu vill jag att fraktkostnaden ska uppdateras i beställningsformuläret, när man anger antal produkter och vilka produkter.
Så här långt har jag kommit:
ASPkod

Response.write "levcost=document.forms[""orderpage""].elements[""levID"&RS("leveranssatt_ID")&"""].id;"   & vbcrlf
Response.write "var levPriser = levcost.split("";"");"   & vbcrlf
Response.write "for(var i=0; i<levPriser.length; i++){;"   & vbcrlf
Response.write "var lev1Vikt = levPriser[i].split("":"");"   & vbcrlf
Response.write "if(sum<=lev1Vikt[0]){"   & vbcrlf
		Response.write "viktsumma=lev1Vikt[1];"   & vbcrlf
		Response.write "}"   & vbcrlf 
Response.write "}"   & vbcrlf 
Response.write "document.forms[""orderpage""].elements[""levID"&RS("leveranssatt_ID")&"""].value=viktsumma;"   & vbcrlf

Utskriven Javascriptkod

levcost=document.forms["orderpage"].elements["levID22"].id;
var levPriser = levcost.split(";");
for(var i=0; i<levPriser.length; i++){;
	var lev1Vikt = levPriser[i].split(":");
	if(sum<=lev1Vikt[0]){
		viktsumma=lev1Vikt[1];
	}
}
document.forms["orderpage"].elements["levID22"].value=viktsumma;

Problemet
Det jag har problem med är att den alltid tar den sista uträkningen. Då visas hela tiden den dyraste frakten även om det ska vara den billigaste.

Jag har försökt att lägga in ett stopp som i min ASPkod

if ""&(levVikt*1000)&""=<""&lev1Vikt1&""[B] and fraktkostnad=0[/B] then

Men jag har ingen aning om hur man gör något liknade i javascript. Men jag är rätt säker på att det är denna rad som ska ändras lite:

if(sum<=lev1Vikt[0]){

Jag hoppas någon förstår vad mitt problem är.

//Joel

GustaFssonMedlem sedan jan. 200534 inlägg
#2

Jag löste det med

Response.write "if(sum<=lev1Vikt[0]){"   & vbcrlf
	[B]Response.write "if(viktsumma==0){"   & vbcrlf[/B]
	Response.write "viktsumma=lev1Vikt[1];"   & vbcrlf
	Response.write "}"   & vbcrlf 
	Response.write "}"   & vbcrlf 
Response.write "}"   & vbcrlf

Testae detta förut, men då hade jag missat dubbla likhetstecken...

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
127 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)