webForumDet fria alternativet

Variabel med värde från javascript?

12 svar · 588 visningar · startad av webbSAJTEN

webbSAJTENMedlem sedan jan. 2002992 inlägg
#1

Tjenare!
Detta verkar inte fungera:

frakt = "<script LANGUAGE=""JavaScript"">showItems();</script>"
if frakt < "999" then

add_freight="0"
else
add_freight="49.00"
end if

Ni förstår säkert.
Fraken ligger i ett javascript..
Jag vill veta om det värdet är 1000 eller mer.
Är det så skall frakten vara 0, annars 49.

Hur kan jag göra?

@ndersMedlem sedan juni 200032 969 inlägg
#2

Eftersom all asp-kod körs innan det skickas något till browsern som ju kör javascriptet, så måste du efter att browsern bestämt värdet skicka det till asp-sidan på något sätt. Form / querystring till exempel.

webbSAJTENMedlem sedan jan. 2002992 inlägg
#3

Skulle du kunna ge något exempel?
Hur ska jag göra?

@ndersMedlem sedan juni 200032 969 inlägg
#4
<script>location.href='sida.asp?värde=49';</script>
webbSAJTENMedlem sedan jan. 2002992 inlägg
#5

Men Anders.. Känner mig faktiskt helt lost.. Stressad och trött kan vara orsaken.
Vart någonstans ska jag ha en sådan kod?
Hur ska jag fortsätta sen?

@ndersMedlem sedan juni 200032 969 inlägg
#6

Det beror ju helt och hållet på vad du håller på med!

Varför räknar du inte ut frakten i asp istället? Vad ska du använda värdet till i asp-koden?

TravoniMedlem sedan okt. 20041 556 inlägg
#7
<script type="text/javascript">
function getPrice(p){
    var f=0;
    if(p<999)f=49;
    return f;
//eller return f+p;
};
alert(getPrice(<%=din_aspvariabel_med summan%>));
</script>
webbSAJTENMedlem sedan jan. 2002992 inlägg
#8

Hela shoppen är typ uppbyggd i Javascript och en del i ASP..
På alla ställen där det totala priset skrivs ut använder dem javascript så det är det enda sättet jag vet som jag kan få ut totalpriset.
Och att kolla saker kan jag bara göra i ASP, vet inte hur man gör i javascript..
Därför måste jag få värdet i en ASP-variabel.

Nu måste jag kila till jobbet. Försöker mer ikväll!!

Tack för allt hjälp!

@ndersMedlem sedan juni 200032 969 inlägg
#9

Men alltså, det här värdet som du vill jämföra med, har du inte det åtkomligt från asp också? Du får visa mer kod om du vill att vi ska kunna hjälpa dig.

webbSAJTENMedlem sedan jan. 2002992 inlägg
#10

Okej. Såhär är det.
Det finns ett ställe i shoppen där det står hur mycke man har handlat för.
Den räknar med hjälp av javascript ut den totala summan ur en cookie.
Det finns en sida, settings.asp där man kan ställa in hur hög fraken skall vara.
Standardvärdet är 49kr.

Jag vill att när den totala summan är lika med eller över 1000kr så skall fraken vara 0kr.

Här kommer en massa javascriptkod som jag TROR hämtar all information från cookien.

<script LANGUAGE="JavaScript">

	// showItems() - displays shopping basket in a table
	function showItems() {
		index = document.cookie.indexOf("TheBasket");
		countbegin = (document.cookie.indexOf("=", index) + 1);
        	countend = document.cookie.indexOf(";", index);
        	if (countend == -1) {
            		countend = document.cookie.length;
        	}
		fulllist = document.cookie.substring(countbegin, countend);
		subtotal = 0;
		itemlist = 0;
		for (var i = 0; i <= fulllist.length; i++) {
			if (fulllist.substring(i,i+1) == '[') {
				itemstart = i+1;
				thisitem = 1;
			} else if (fulllist.substring(i,i+1) == ']') {
				itemend = i;
				thequantity = fulllist.substring(itemstart, itemend);
				itemtotal = 0;
				itemtotal = (eval(theprice*thequantity));
				temptotal = itemtotal * 100;
				subtotal = subtotal + itemtotal;
				itemlist=itemlist+1;

			} else if (fulllist.substring(i,i+1) == '|') {
				if (thisitem==1) theitem = fulllist.substring(itemstart, i);
				if (thisitem==2) theprice = fulllist.substring(itemstart, i);
				if (thisitem==3) theoption = fulllist.substring(itemstart, i);
				thisitem++;
				itemstart=i+1;
			}
		}

		document.writeln('<FONT SIZE="2" FACE="Verdana, Arial, Helvetica, sans-serif"><%=txt_total %>&nbsp;<%=txt_currency%>: <B>'+top.center.cart.alterError(subtotal)+'</B></FONT>');
		
	}

	function updateItem(itemno, newquant) {
		newItemList = null;
		itemlist = 0;
		for (var i = 0; i <= fulllist.length; i++) {
			if (fulllist.substring(i,i+1) == '[') {
				thisitem = 1;
				itemstart = i+1;
				fullstart = i+1;
			} else if (fulllist.substring(i,i+1) == ']') {
				itemend = i;
				itemlist=itemlist+1;
				if (itemlist != itemno) {
					newItemList = newItemList+'['+fulllist.substring(fullstart, itemend)+']';
				} else {
					newItemList = newItemList + '['+theitem+'|'+theprice+'|'+theoption+'|'+newquant+']';
				}
			} else if (fulllist.substring(i,i+1) == '|') {
				if (thisitem==1) theitem = fulllist.substring(itemstart, i);
				if (thisitem==2) theprice = fulllist.substring(itemstart, i);
				if (thisitem==3) theoption = fulllist.substring(itemstart, i);
				thisitem++;
				itemstart=i+1;
			}
		}
		index = document.cookie.indexOf("TheBasket");
		document.cookie="TheBasket="+newItemList;
		self.location = "basket.asp";

	}

	function removeItem(itemno) {
		newItemList = null;
		itemlist = 0;
		for (var i = 0; i <= fulllist.length; i++) {
			if (fulllist.substring(i,i+1) == '[') {
				itemstart = i+1;
			} else if (fulllist.substring(i,i+1) == ']') {
				itemend = i;
				theitem = fulllist.substring(itemstart, itemend);
				itemlist=itemlist+1;
				if (itemlist != itemno) {
					newItemList = newItemList+'['+fulllist.substring(itemstart, itemend)+']';
				}
			}
		}

	}
</script>

Jag vill alltså spara värdet från javascriptet i en variabel i ASP för att kunna kolla om den totala summan är lika med eller över 1000.

add_freight="49"

Sådär är variabeln i settings.asp som bestämmer frakten.

Hoppas att det där räcker :)

@ndersMedlem sedan juni 200032 969 inlägg
#11

Eftersom asp-koden alltid körs innan javascriptkoden kommer du få problem. Du kan alltså inte komma åt javascriptvärdet från asp, eftersom javascriptet ännu inte har körts. Om du nu prompt måste använda just javascriptvärdet så måste du skicka det till asp-sidan (och läsa om densamma) på något sätt.

Om du nu inte är sugen på att hitta på någon alternativ (bättre?) lösning. Ett exempel på alternativ lösning kan vara att se till att du när kundvagnen uppdateras sparar totalsumman som ett eget värde i cookien, då kan du på asp-sidan lyfta ut värdet därifrån istället.

webbSAJTENMedlem sedan jan. 2002992 inlägg
#12

Den idén var jävla bra :)
Ska kika hur man hämtar värden från en cookie =)

Tack!

webbSAJTENMedlem sedan jan. 2002992 inlägg
#13

Kikade genom sidan nu oh försökte hitta cookien som jag tror skapas men jag hittar ingen.
Tömt hela mappen och sen bra lagt till en produkt men det kommer ingen cookie..

index = document.cookie.indexOf("TheBasket");

Detta är en rad i koden.. Borde inte det betyda att det någonstans skall finnan en cookie?

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