31. januar 2005 - 23:06
Der er
2 kommentarer og
1 løsning
Ekspert søges - rullemenu afhængig af anden rullemenu
Jeg skal have en rullemenu til at ændre sig afhængig af valget af anden rullemenu ( i 4 niveauer )
Det skal bruges til en PC konfigurator, hvor CPU valg bestemmer bundkorttype, og bundkortvalg bestemmer Ram type.
Der bygges op omkring en database, hvor alle varer er delt op i typekoder.
Dvs. hvis man vælger cputype 56, skal rullemenuen nedenunder vise Bundkorttype 20 som igen skal vise ramtype 300.
Jeg vil meget gerne sende dig koderne til denne konfig side, men den er på 815 linier (mest designkoder).
Jeg vil blot have en ide til hvordan det skal løses, da min fantasi ikke rækker.
Jeg vil helst undgå at siden opdateres hver gang man laver et valg, så mon ikke der skal bruges noget java hardcore?
Her er lige et par enkelte kodeeksempler fra siden.
(de er lidt heavy - sorry)
Skriv evt. til mig på kristian@kbonline.dk hvis du har spørgsmål.
<%
' ----------------------------------------------------------------------------------------------
' SQL forespørgsel find bundkort som passer til processor pr ram
strSQL = "Select * from varer Where kode in (12,15,23) order by apris"
Set rs = Conn.Execute(strSQL)
' ----------------------------------------------------------------------------------------------
%>
<TR><TD width="19" bgcolor="#FFFFFF" align="center" height="24"><font color="#000080"><b>3</b></font></TD>
<TD width="110" bgcolor="#FFFFFF" height="24"><font color="#000080"><b> Bundkort</b></font></TD>
<TD bgcolor="#FFFFFF" width="401" height="24">
<font color="#000080">
<SELECT style="WIDTH: 400; POSITION: relative; height:352" onchange=opdater() size=1 name=motherboard>
<%
do
%>
<%apris = round(rs("apris")*db) %>
<OPTION value="<%= apris & "#" & rs("varetekst") %>"><%= rs("varetekst") %> ( kr.<% Response.Write apris %> )</OPTION>
<%rs.MoveNext
Loop While Not rs.EOF
%>
</SELECT> </font>
</TD>
<TD width="74" bgcolor="#FFFFFF" align="center" height="24"><font color="#000080">
<INPUT size=5 value=0 name=motherboardapris style="border:1px solid #FFFFFF; font-size: 12 pt; font-weight: bold; text-align: right; background-color: #FFFFFF; ">
</font> </TD></TR>
<%
' ----------------------------------------------------------------------------------------------
' SQL forespørgsel find ram
strSQL = "Select * from varer Where kode = 1330 order by apris"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)
' ----------------------------------------------------------------------------------------------
%>
<TR><TD width="19" align="center" bgcolor="#FFFFFF" height="26"><font color="#000080"><b>4</b></font></TD>
<TD width="110" bgcolor="#FFFFFF" height="26"><font color="#000080"><b> Ram
blok 1</b></font></TD>
<TD width="401" bgcolor="#FFFFFF" height="26">
<font color="#000080">
<SELECT style="WIDTH: 400; POSITION: relative; height:352" onchange=opdater() size=1 name=ram1>
<%
do
%>
<%apris = round(rs("apris")*db) %>
<OPTION value="<%= apris & "#" & rs("varetekst") %>"><%= rs("varetekst") %> ( kr.<% Response.Write apris %> )</OPTION>
<%rs.MoveNext
Loop While Not rs.EOF
%>
</SELECT> </font>
</TD>
<TD width="74" bgcolor="#FFFFFF" align="center" height="24"><font color="#000080">
<INPUT size=5 value=0 name=ram1apris style="border:1px solid #FFFFFF; font-size: 12 pt; font-weight: bold; text-align: right; background-color: #FFFFFF; ">
</font> </TD></TR>
12. februar 2005 - 00:31
#2
Hej jeg har dette som gør brug af javascritp og kan fylde 4 combo bokse op.
<html>
<head>
<%
set conn = server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db1.mdb")
SQL = "SELECT [kol_combo1], [value_combo1], [kol_combo2], [value_combo2], [kol_combo3], [value_combo3], [kol_combo4], [value_combo4] FROM combotabeller ORDER BY [kol_combo1], [kol_combo2], [kol_combo3], [kol_combo4]"
Set rs = Conn.Execute(SQL)
%>
<script language="javascript" type="text/javascript">
var arr = [
<%
oldValg1 = ""
oldValg2 = ""
oldValg3 = ""
do while not rs.EOF
if Cstr(oldValg1) <> Cstr(rs("value_combo1")) then
Response.write "['" & rs("value_combo1") & "¤¤¤" & rs("kol_combo1") & "', [" & vbCrLf
oldValg1 = rs("value_combo1")
end if
if Cstr(oldValg2) <> Cstr(rs("value_combo2")) then
Response.write "['" & rs("value_combo1") & "¤¤¤" & rs("kol_combo2") & "'"
oldValg2 = rs("value_combo2")
newValg2 = true
end if
if newValg2 then
Response.write "," & vbCrLf & "["
newValg2 = false
end if
if Cstr(oldValg3) <> Cstr(rs("value_combo3")) then
Response.write "['" & rs("value_combo3") & "¤¤¤" & rs("kol_combo3") & "'"
oldValg3 = rs("value_combo3")
newValg3 = true
end if
if newValg3 then
Response.write "," & vbCrLf & "["
newValg3 = false
end if
Response.write "'" & rs("value_combo4") & "¤¤¤" & rs("kol_combo4") & "'"
rs.Movenext
if not rs.EOF then
endValg = false
if Cstr(oldValg3) <> Cstr(rs("value_combo3")) then
Response.write "]]"
endValg = true
end if
if Cstr(oldValg2) <> Cstr(rs("value_combo2")) then
Response.write "]]"
endValg = true
end if
if Cstr(oldValg1) <> Cstr(rs("value_combo1")) then
Response.write "]]"
endValg = true
end if
Response.write ","
if endValg = true then response.write vbCrLf
else
Response.write "]]]]]]"
end if
loop
%>
];
</script>
</head>
<body>
<script language="javascript" type="text/javascript">
function initSels(){
createOpts(document.getElementById('sel1'));
}
function createOpts(sel){
var s = new Array();
var num = 0, txt = "arr";
var ar = opt = null;
var n = sel.selectedIndex;
var args = createOpts.arguments.length;
for(var i=1;args>i;i++){
s[i-1] = document.getElementById(createOpts.arguments[i]);
if(s[i-1]==sel)num=i;
}
if(args>1){
if(s[num])sel = s[num];
else return;
}
if(n==0&&args>1){
for(i=num;args>i+1;i++){
s[i].length = 0;
opt = document.createElement('OPTION');
s[i].appendChild(opt);
opt.value = "";
opt.text = "\74-- Vælg --";
}
return true
};
for(i=0;num>i;i++){
txt+="["+(s[i].selectedIndex-1)+"][1]";
}
ar = eval(txt);
sel.length = 0;
opt = document.createElement('OPTION');
sel.appendChild(opt);
opt.value = "";
opt.text = "-- Vælg --";
for(i=0;ar.length>i;i++){
opt = document.createElement('OPTION');
sel.appendChild(opt);
if(typeof ar[i] == 'object'){
var str = ar[i][0];
}else{
var str = ar[i];
}
tarr=str.split("¤¤¤");
opt.value = tarr[0];
opt.text = tarr[1];
}
if(args>num+2){
for(i=num+1;args-1>i;i++){
s[i].length = 0;
opt = document.createElement('OPTION');
s[i].appendChild(opt);
opt.value = "";
opt.text = "\74-- Vælg --";
}
}
}
</script>
</head>
<body onload="initSels()">
<form action="">
Select nr.1:
<select name="sel1" id="sel1" onchange="createOpts(this,'sel1','sel2','sel3','sel4');">
<option value="" selected>Vis alle</option>
</select>
<br>
Select nr.2:
<select name="sel2" id="sel2" onchange="createOpts(this,'sel1','sel2','sel3','sel4');">
<option value="" selected><-- Vælg --</option>
</select>
<br>
Select nr.3:
<select name="sel3" id="sel3" onchange="createOpts(this,'sel1','sel2','sel3','sel4');">
<option value="" selected><-- Vælg --</option>
</select>
<br>
Select nr.4:
<select name="sel4" id="sel4">
<option value="" selected><-- Vælg --</option>
</select>
<br><br>
<input type="submit" name="send" value="send">
</form>
</body>
</html>