Avatar billede andersasp Nybegynder
11. januar 2007 - 09:13 Der er 1 løsning

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>
Avatar billede andersasp Nybegynder
15. januar 2007 - 20:48 #1
Nå jeg lukker igen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester