hej har ett script som där då jag väljer en storlek i en dropdown så visas en vikt, använder mig utav följande kod för dropdownen:
<SCRIPT LANGUAGE="JavaScript">function changeWeight(selValue){if(selValue==''){swd.childNodes[0].nodeValue='Select a ring size.';}else if (selValue=='min'||selValue=='max'||selValue=='mid'){swd.childNodes[0].nodeValue='Call xxx-xxx-xxxx.';} else if(selValue=='4'){swd.childNodes[0].nodeValue='5.0g'} else if(selValue=='4.5'){swd.childNodes[0].nodeValue='5.2g'} else if(selValue=='5'){swd.childNodes[0].nodeValue='5.3g'} else if(selValue=='5.5'){swd.childNodes[0].nodeValue='5.5g'} else if(selValue=='6'){swd.childNodes[0].nodeValue='5.6g'} else if(selValue=='6.5'){swd.childNodes[0].nodeValue='5.7g'} else if(selValue=='7'){swd.childNodes[0].nodeValue='5.9g'} else if(selValue=='7.5'){swd.childNodes[0].nodeValue='6.0g'} else if(selValue=='8'){swd.childNodes[0].nodeValue='6.2g'} else if(selValue=='8.5'){swd.childNodes[0].nodeValue='6.3g'} else if(selValue=='9'){swd.childNodes[0].nodeValue='6.5g'} else if(selValue=='9.5'){swd.childNodes[0].nodeValue='6.6g'} else if(selValue=='10'){swd.childNodes[0].nodeValue='6.7g'} else if(selValue=='10.5'){swd.childNodes[0].nodeValue='6.9g'} else if(selValue=='11'){swd.childNodes[0].nodeValue='7.0g'} else if(selValue=='11.5'){swd.childNodes[0].nodeValue='7.2g'} else if(selValue=='12'){swd.childNodes[0].nodeValue='7.3g'} else if(selValue=='12.5'){swd.childNodes[0].nodeValue='7.5g'} else if(selValue=='13'){swd.childNodes[0].nodeValue='7.6g'}else{swd.childNodes[0].nodeValue='Select a ring size.';}}</SCRIPT>
men nu vill jag att vikterna inte skall va fasta utan jag ska hämta ett värde från databasen (mha ASP) och multiplicera den med 1.032 och då kommer jag få ut vikten, hur skall jag göra detta smidigast?
Hur vill du att uträkningen skall ske? Du gör ett val i dropdownen och en vikt visas. Skall det värdet sedan multipliceras med 1.032? Om inte låter det som att du kan sköta allting med ASP: du hämtar värdet från databasen, multiplicerar det med 1.032 och skriver ut det på sidan.
tja peter,
jag vill att uträkningen skall ske innan vikten skall visas, just nu har jag så att en vikt visas statiskt, men det jag vill är att ett värde från databasen skall multipliceras med 1.032 och därefter så skall vikten visas, att jag inte gör det med ASP är pga att jag måste refresha hela sidan då de väljer något från dropdownen och det vill jag inte, men om multiplikationen kan ske i asp och därefter så matar man in värdena i javascriptet så är det ok för mig.
så skall jag göra som du visat mig för samtliga storlekar dvs upprepa en elseif sats efter det där...
en fråga till vad gör detta: RegExp.$1 är det värdet som jag hämtar från databasen? kan jag trycka in värdet som jag hämtar från databasen där mha "&rs("vikt")&" eller ngt liknande?
hej, o ursäkta för det sena svaret, va på semester... jag har testat det du säger men det tycks inte fungera, så här ser min kompletta kod ut:
<SELECT NAME="ring_size" CLASS="PagingFilterDropDown" OnChange="if (isMenu){changeWeight(this.options[this.selectedIndex].value);mulNodeVal();}">
<OPTION VALUE="">Select a size</OPTION>
<OPTION VALUE='min'>Less than 4<OPTION VALUE='4'>4<OPTION VALUE='4.5'>4.5<OPTION VALUE='5'>5<OPTION VALUE='5.5'>5.5<OPTION VALUE='6'>6<OPTION VALUE='6.5'>6.5<OPTION VALUE='7'>7<OPTION VALUE='7.5'>7.5<OPTION VALUE='8'>8<OPTION VALUE='8.5'>8.5<OPTION VALUE='9'>9<OPTION VALUE='9.5'>9.5<OPTION VALUE='10'>10<OPTION VALUE='10.5'>10.5<OPTION VALUE='11'>11<OPTION VALUE='11.5'>11.5<OPTION VALUE='12'>12<OPTION VALUE='12.5'>12.5<OPTION VALUE='13'>13<OPTION VALUE='max'>Greater than 13
</select>
<SCRIPT LANGUAGE="JavaScript">
function mulNodeVal(){
if (/^(\d\.\d)g$/.test(swd.childNodes[0].nodeValue)){
swd.childNodes[0].nodeValue = RegExp.$1 * 1.032 + 'g';
}
end if
}
</script>
<!--och här skrivs värdet på formeln ut beroende på storleken som väljes i dropdown-->
<SCRIPT LANGUAGE="JavaScript">if (isMenu) {var swd=document.getElementById("span_weight_display");changeWeight(document.getElementById("ring_size").options[document.getElementById("ring_size").selectedIndex].value);}</SCRIPT>
som sagt det jag vill göra är att då de väljer exempelvis storlek 8 från dropdownen att det värdet multipliceras med 1.32 * ett värde från databasen och därefter skrivs det ut? så att formeln ser ut som följer, val från dropdown * 1.032 * värde från databas
Felet kan bero på att det inte finns någon funktion changeWeight() i ovanstående kod.
Dessutom - var ligger elementet med id="span_weight_display"? Samt bör <select> ha id="ring_size" om du med kodstycket 'document.getElementById("ring_size")' på sista raden avser det elementet.
vilket gav mig statiska värden på vikten, dvs om man väljer värde 13 så får man vikten 7.6 och det är det haf vill ändra på så om väljer 13 så skall multiplikationen utföras