Visning af bestemte variationer
Hejsa,Jeg har et script som bruges til at vise nogle produkter som kan have forskellige variationer som farve og størrelse.
Scriptet gør at man først vælger farver, så viser den så de størrelser som er til den unikke farve. den har så en lagerstatus så man kun kan købe det x antal som er på lager..
Når jeg vælger en farve viser den størrelserne perfekt, men vælger jeg så en anden farve lige efter, viser den både den nye størrelse samt den gamle??? dvs. en som ikke passer.. jeg har forgæves prøvet at finde problemet man har nu givet op..
Et andet problem er at man nu kun kan vælge 1 stk - hvor lageret måske er 50. der står i nedenstående funktion "var maxValue = 1;" men jeg ved ikke hvad jeg skal erstatte dette med...
de felter den trækker fra databasen er:
PVcolor,PVSize,PVlager,PVID
Håber der er nogle der kan hjælpe :)
Her viser den dropdown menuerne samt antal
----------------------------------------------------------------
<%
Set varconn = Server.CreateObject("ADODB.Connection")
varconn.Open MM_webdatabase_STRING
'set theinvortory = varconn.Execute("SELECT * FROM produktervar where PVkey = "&uniktprodukt.Fields.Item("PID")&"")
set theinvortory = varconn.Execute("SELECT DISTINCT PVcolor FROM produktervar where PVkey = "&uniktprodukt.Fields.Item("PID")&"")
response.write "<select name='Pfarve' id='Pfarve' onchange='java script:LoadPSize();'>"
Response.Write "<option value='0'>Farve..</option>"
do while not theinvortory.eof
Response.Write "<option value=""" & theinvortory("PVcolor") & """>" & theinvortory("PVcolor") & "</option>"
theinvortory.MoveNext
loop
response.write "</select>"
set theinvortory = varconn.Execute("SELECT DISTINCT PVcolor,PVSize,PVlager,PVID FROM produktervar where PVkey = "&uniktprodukt.Fields.Item("PID")&"")
Response.Write "<script language='javascript'>"
Response.Write "var colorSize = new Array();"
do while not theinvortory.eof
Response.Write "colorSize[colorSize.length]=new Array('" &theinvortory("PVcolor") &"','" & theinvortory("PVSize") &"','" & theinvortory("PVlager") &"','" & theinvortory("PVID") &"');"
theinvortory.MoveNext
loop
Response.Write("</script>")
theinvortory.close
varconn.close
%>
</span></div></td>
<td><div align="right"><span class="style7">
<%
response.write "<select name='PSize' id='PSize'>"
'Response.Write "<option value='0'>Størrelse..</option>"
response.write "</select>"
%>
</span></div></td>
<td><div align="right">
<input name="howmany" type="text" id="howmany" value="1" size="3" onblur="java script:validateQty(this);" />
Her er funktionen som bruges
-------------------------------------------------------------
<script language='javascript'>
function LoadPSize(){
var pSize = document.getElementById('PSize');
var pColor = document.getElementById('Pfarve');
if(pSize && colorSize && pColor){
ClearSelect('PSize');
var selectedColor = pColor[pColor.selectedIndex].value.toLowerCase();
if(selectedColor==0 || pColor.options.length <=1){
pSize.disabled = true;
return;
}
for(var i=0;i<colorSize.length;i++){
if(colorSize[i][0].toLowerCase()==selectedColor){
AddSelectOption('PSize',colorSize[i][3],colorSize[i][1],true);
pSize.disabled = false;
}
}
}
}
function ClearSelect(id){
var select = document.getElementById(id);
if(select){
for(var i=(select.options.length - 1);i > 0;i--){
select.options[i]=null;
}
}
}
function AddSelectOption(id,value,text,blnSelected){
var select = document.getElementById(id);
if(select){
select.options[select.options.length]=new Option(text,value,false,blnSelected);
}
}
function validateQty(obj){
if(obj){
var maxValue = 1;
var pColor = document.getElementById('Pfarve');
var pSize = document.getElementById('PSize');
var selectedColor = pColor[pColor.selectedIndex].value.toLowerCase();
var selectedSize = pSize[pSize.selectedIndex].value.toLowerCase();
for(var i=0;i<colorSize.length;i++){
if(colorSize[i][0].toLowerCase()==selectedColor && colorSize[i][1].toLowerCase()==selectedSize){
maxValue = colorSize[i][2]
break;
}
}
if(blnInteger(obj.value)==false){
obj.value = 1;
}else{
if(parseInt(obj.value)==0)
obj.value = 1;
if(parseInt(obj.value) > maxValue)
obj.value = maxValue;
}
}
}
function blnInteger(val){
if(isNaN(parseInt(val)))
return false;
return true;
}
window.onload = function(){
var pSize = document.getElementById('PSize');
if(pSize){
pSize.disabled = true;
}
}
</script>
