22. maj 2006 - 11:32
Der er
10 kommentarer og
1 løsning
Dynamisk selects
Skal have lavet en lidt avanceret navigationsmenu, hvor man skal kunne vælge 3-4 ting, som så dynamisk skal opdateres i nogen <select> felter. Eksempel:
1. select skal man vælge "personbil", "lastbil" eller "motorcykel"
2. select skal så opdateres med bilmærker hvis man vælger personbil osv.
3. select skal så udfyldes med bilmodeller (eks. audi i 2. select og A4 i 3.select).
Til sidst skal man så klikke på en GO! knap, der så søger i databasen efter de 3 <select> kriterier.
Alle disse værdier skal tages fra en database-tabel som har felterne BilType, BilMaerke og BilModel. Jeg forestiller mig at der måske skal laves et mega-array, der indeholder alle kombinationer taget fra databasen.
Men hvordan laves dette ren kode-mæssigt? (uden at hele asp-siden skal opdateres efter hvert valg)
hmmmmm har selv haft samme problem, og løste den med nedenstående.
jeg har i nedenstående lavet 6 afhængige dropdow, principet er at man laver et opslag og når man har valgt opdateres siden automatisk, på den måde blicer der ikke hentet flere data ennd der skal bruges, og samlet set så tro jeg dette må vlre den hurtigste.
koden er nok lidt rodet, da jeg aldrig blev helt færdig men den virker ;-)
<!--#include file="../db.asp"-->
<%
Session.LCID = 1030
'Response.Write kundenummer
%>
<script language="JavaScript" type="text/JavaScript">
<!--
function surfto1(form) {
var myindex=form.status1.selectedIndex
if (form.status1.options[myindex].value != 0) {
location=form.status1.options[myindex].value;}
}
function surfto2(form) {
var myindex=form.status2.selectedIndex
if (form.status2.options[myindex].value != 0) {
location=form.status2.options[myindex].value;}
}
function surfto3(form) {
var myindex=form.status3.selectedIndex
if (form.status3.options[myindex].value != 0) {
location=form.status3.options[myindex].value;}
}
function surfto4(form) {
var myindex=form.status4.selectedIndex
if (form.status4.options[myindex].value != 0) {
location=form.status4.options[myindex].value;}
}
function surfto5(form) {
var myindex=form.status5.selectedIndex
if (form.status5.options[myindex].value != 0) {
location=form.status5.options[myindex].value;}
}
function surfto6(form) {
var myindex=form.status6.selectedIndex
if (form.status6.options[myindex].value != 0) {
location=form.status6.options[myindex].value;}
}
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
<html>
<head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1352">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document"><link rel="stylesheet" type="text/css" href="../1.css">
<style type="text/css"">
fieldset
{
border:1px groove #330099;
border:2px groove rgb(153,204,255);
width:600px;
padding: 10px;
}
</style>
<title>Toning af vare </title>
<%
temp_tone_id = CDbl(Request.QueryString("temp_tone_id"))
if temp_tone_id > 0 then
SQL_slet = "DELETE FROM temp_tone WHERE temp_tone_id=" &temp_tone_id
'Response.Write SQL_slet
Conn.Execute (SQL_slet)
else
end if
%>
<BR><BR><BR><BR>
<fieldset>
<legend>Special tonede vare</legend>
</div>
<table border="0" width="400" cellspacing="0" cellpadding="0" >
<tr>
<Form name='dropdown1' action='tonevare1.asp' method='get'>
<td valign="top" align="right" class="txt_colur1">Vælg serie : </td>
<td valign="top" >
<select name='status1' id="t200" onChange='surfto1(form)' class='soegfelt'>
<option value='tonevare1.asp ' >Vælg .... </option>
<%
mixcust_serievar= Replace(Request.QueryString("mixcust_serievar"),"'","")
mixcust_glans = Replace(Request.QueryString("mixcust_glans"),"'","")
If mixcust_serievar = "" or mixcust_serievar = null then
SQL_serievar ="SELECT mixcust_desc,mixcust_serievar, mixcust_glans FROM mixfarve, mixcust,mixemb where mixfarve_serie =left(mixcust_serievar,4) and mixcust_serievar=mixemb_servar and mixemb_servar = mixcust_serievar and mixcust_cust ='"& kundenummer &"' group by mixcust_desc ORDER BY mixcust_serievar ASC"
Conn.Execute (SQL_serievar)
Set rs = conn.Execute(SQL_serievar)
Do While Not rs.EOF or rs.BOF
Response.Write "<option value=tonevare1.asp?mixcust_serievar='" & rs("mixcust_serievar") & "&mixcust_glans="& rs("mixcust_glans")&"'>" & rs("mixcust_desc") & "</Option>"
rs.movenext
loop
Response.Write "</select>"
else
SQL_serievar ="SELECT mixcust_desc,mixcust_serievar, mixcust_glans FROM mixfarve, mixcust,mixemb where mixfarve_serie =left(mixcust_serievar,4) and mixcust_serievar=mixemb_servar and mixemb_servar = mixcust_serievar and mixcust_cust ='"& kundenummer &"' group by mixcust_desc ORDER BY mixcust_serievar ASC"
Conn.Execute (SQL_serievar)
Set rs = conn.Execute(SQL_serievar)
Do While Not rs.EOF or rs.BOF
if mixcust_serievar&"" = rs("mixcust_serievar")&"" and mixcust_glans&"" = rs("mixcust_glans")&""then
valgt = "SELECTED"
else
valgt = ""
end if
Response.Write "<option value=tonevare1.asp?mixcust_serievar='" & rs("mixcust_serievar") & "&mixcust_glans="& rs("mixcust_glans")&"' "&valgt&">" & rs("mixcust_desc") & "</Option>"
rs.movenext
loop
Response.Write "</select>"
end if
%>
</form></td>
</tr>
<tr>
<td valign="top" align="right" class="txt_colur1">Vælg nuance standard : </td>
<Form name='dropdown2' action='tonevare1.asp' method='get'>
<td valign="top" ><select name='status2' id="t200" onChange='surfto2(form)' class='soegfelt'>
<option value='tonevare1.asp 'selected >Vælg....</option>
<%
mixfarve_farvesystem= Replace(Request.QueryString("mixfarve_farvesystem"),"'","")
if mixcust_serievar = "" or mixcust_serievar = null then
else
If mixfarve_farvesystem = "" or mixfarve_farvesystem = null then
SQL_farvesystem ="SELECT DISTINCT (mixfarve_farvesystem) FROM mixfarve, mixcust where mixfarve_serie =left(mixcust_serievar,4) and mixcust_serievar = '"& mixcust_serievar &"'and mixcust_cust ='"& kundenummer &"' ORDER BY mixfarve_farvesystem ASC"
Conn.Execute (SQL_farvesystem)
Set rs = conn.Execute(SQL_farvesystem)
Do While Not rs.EOF or rs.BOF
Response.Write "<option value=tonevare1.asp?mixcust_serievar='" & mixcust_serievar & "&mixcust_glans="& mixcust_glans & "&mixfarve_farvesystem="& rs("mixfarve_farvesystem") &"'>" & rs("mixfarve_farvesystem") & "</Option>"
rs.movenext
loop
Response.Write "</select>"
else
'Response.Write "<option value=value=tonevare1.asp?mixcust_serievar='" & mixcust_serievar & "&mixcust_glans="& mixcust_glans & "&mixfarve_farvesystem="& mixfarve_farvesystem &"' SELECTED>" & mixfarve_farvesystem & "</Option>"
SQL_farvesystem ="SELECT DISTINCT (mixfarve_farvesystem) FROM mixfarve, mixcust where mixfarve_serie =left(mixcust_serievar,4) and mixcust_serievar = '"& mixcust_serievar &"'and mixcust_cust ='"& kundenummer &"' ORDER BY mixfarve_farvesystem ASC"
Conn.Execute (SQL_farvesystem)
Set rs = conn.Execute(SQL_farvesystem)
Do While Not rs.EOF or rs.BOF
if mixfarve_farvesystem&"" = rs("mixfarve_farvesystem")&"" then
valgt = "SELECTED"
else
valgt = ""
end if
Response.Write "<option value=tonevare1.asp?mixcust_serievar='" & mixcust_serievar & "&mixcust_glans="& mixcust_glans & "&mixfarve_farvesystem="& rs("mixfarve_farvesystem") &"' "&valgt&">" & rs("mixfarve_farvesystem") & "</Option>"
rs.movenext
loop
end if
end if
Response.Write "</select>"
'Response.Write SQL_farvesystem
'Response.end
%>
</form></td>
</tr>
<tr>
<td valign="top" align="right" class="txt_colur1">Vælg farve nr : </td>
<Form name='dropdown3' action='tonevare1.asp' method='get'>
<td valign="top" ><select name='status3' id="t200" onChange='surfto3(form)' class='soegfelt'>
<option value='tonevare1.asp 'selected >Vælg .....</option>
<%
mixfarve_farvenr= Replace(Request.QueryString("mixfarve_farvenr"),"'","")
if mixcust_serievar = "" or mixcust_serievar = null then
else
if mixfarve_farvesystem = "" or mixfarve_farvesystem = null then
else
If mixfarve_farvenr = "" or mixfarve_farvenr = null then
SQL_mixfarve_farvenr ="SELECT mixfarve_farvenr, mixfarve_farvebesk FROM mixfarve where mixfarve_serie = left('"& mixcust_serievar &"',4) and mixfarve_farvesystem ='"& mixfarve_farvesystem &"' ORDER BY mixfarve_farvenr ASC"
'Response.Write SQLmgn
Conn.Execute (SQL_mixfarve_farvenr)
Set rs = conn.Execute(SQL_mixfarve_farvenr)
Do While Not rs.EOF or rs.BOF
Response.Write "<option value=tonevare1.asp?mixcust_serievar='" & mixcust_serievar & "&mixcust_glans="& mixcust_glans & "&mixfarve_farvesystem=" & mixfarve_farvesystem & "&mixfarve_farvenr="& rs("mixfarve_farvenr") &"'>" & rs("mixfarve_farvenr") & "</Option>"
rs.movenext
loop
Response.Write "</select>"
else
SQL_mixfarve_farvenr ="SELECT mixfarve_farvenr, mixfarve_farvebesk FROM mixfarve where mixfarve_serie = left('"& mixcust_serievar &"',4) and mixfarve_farvesystem ='"& mixfarve_farvesystem &"' ORDER BY mixfarve_farvebesk ASC"
Conn.Execute (SQL_mixfarve_farvenr)
Set rs = conn.Execute(SQL_mixfarve_farvenr)
Do While Not rs.EOF or rs.BOF
if mixfarve_farvenr&"" = rs("mixfarve_farvenr")&"" then
valgt = "SELECTED"
else
valgt = ""
end if
Response.Write "<option value=tonevare1.asp?mixcust_serievar='" & mixcust_serievar & "&mixcust_glans="& mixcust_glans & "&mixfarve_farvesystem=" & mixfarve_farvesystem & "&mixfarve_farvenr="& rs("mixfarve_farvenr") &"' "&valgt&">" & rs("mixfarve_farvenr") & "</Option>"
rs.movenext
loop
end if
end if
end if
Response.Write "</select>"
%>
</form></td>
</tr>
<tr>
</tr>
<tr>
<td valign="top" align="right" class="txt_colur1">Vælg emballage størrelse : </td>
<Form name='dropdown4' action='tonevare1.asp' method='get'>
<td valign="top" ><select name='status4' id="t200" onChange='surfto4(form)' class='soegfelt'>
<option value='tonevare1.asp 'selected >Vælg .....</option>
<%
mixemb_embst= Replace(Request.QueryString("mixemb_embst"),"'","")
if mixcust_serievar = "" or mixcust_serievar = null then
else
if mixfarve_farvesystem = "" or mixfarve_farvesystem = null then
else
If mixfarve_farvenr = "" or mixfarve_farvenr = null then
else
If mixemb_embst = "" or mixemb_embst = null then
SQL_mixemb_embst ="SELECT DISTINCT(mixemb_embst) FROM mixemb,mixcust where mixcust_serievar = mixemb_servar AND mixemb_servar = '"& mixcust_serievar &"' ORDER BY mixemb_embst ASC"
Conn.Execute (SQL_mixemb_embst)
Set rs = conn.Execute(SQL_mixemb_embst)
Do While Not rs.EOF or rs.BOF
Response.Write "<option value=tonevare1.asp?mixcust_serievar='" & mixcust_serievar & "&mixcust_glans="& mixcust_glans & "&mixfarve_farvesystem=" & mixfarve_farvesystem & "&mixfarve_farvenr=" & mixfarve_farvenr & "&mixemb_embst="& rs("mixemb_embst") &"'>" & formatnumber(rs("mixemb_embst"),2) & "</Option>"
rs.movenext
loop
Response.Write "</select>"
else
SQL_mixemb_embst ="SELECT DISTINCT(mixemb_embst) FROM mixemb,mixcust where mixcust_serievar = mixemb_servar AND mixemb_servar = '"& mixcust_serievar &"' ORDER BY mixemb_embst ASC"
Conn.Execute (SQL_mixemb_embst)
Set rs = conn.Execute(SQL_mixemb_embst)
Do While Not rs.EOF or rs.BOF
if mixemb_embst&"" = rs("mixemb_embst")&"" then
valgt = "SELECTED"
else
valgt = ""
end if
Response.Write "<option value=tonevare1.asp?mixcust_serievar='" & mixcust_serievar & "&mixcust_glans="& mixcust_glans & "&mixfarve_farvesystem=" & mixfarve_farvesystem & "&mixfarve_farvenr=" & mixfarve_farvenr & "&mixemb_embst="& rs("mixemb_embst") &"' "&valgt&">" &formatnumber(rs("mixemb_embst"),2) & "</Option>"
rs.movenext
loop
end if
end if
end if
end if
Response.Write "</select>"
%>
</form></td>
</tr>
<tr>
<td valign="top" align="right" class="txt_colur1">Vælg mængde : </td>
<Form name='dropdown5' action='tonevare1.asp' method='get'>
<td valign="top" ><select name='status5' id="t200" onChange='surfto5(form)' class='soegfelt'>
<option value='tonevare1.asp 'selected >Vælg .....</option>
<%
mixemb_embst= Replace(Request.QueryString("mixemb_embst"),"'","")
mixemb_embst=Replace(mixemb_embst,".",",")
mix_mgn= Replace(Request.QueryString("mix_mgn"),"'","")
if mixcust_serievar = "" or mixcust_serievar = null then
else
if mixfarve_farvesystem = "" or mixfarve_farvesystem = null then
else
If mixfarve_farvenr = "" or mixfarve_farvenr = null then
else
If mixemb_embst = "" or mixemb_embst = null then
else
If mix_mgn = "" or mix_mgn = null then
antal_loop= (max_mgn-(max_mgn mod mixemb_embst))/mixemb_embst
mixemb_embst = CDbl(mixemb_embst)
mgn=mixemb_embst
while antal <= antal_loop
Response.Write "<option value=tonevare1.asp?mixcust_serievar='" & mixcust_serievar & "&mixcust_glans="& mixcust_glans & "&mixfarve_farvesystem=" & mixfarve_farvesystem & "&mixfarve_farvenr=" & mixfarve_farvenr & "&mixemb_embst="& mixemb_embst & "&mix_mgn="&mgn&"'>" &formatnumber(mgn,2) & "</Option>"
antal=antal+1
mgn=mgn+mixemb_embst
wend
else
antal_loop= (max_mgn-(max_mgn mod mixemb_embst))/mixemb_embst
mixemb_embst = CDbl(mixemb_embst)
mgn=mixemb_embst
while antal <= antal_loop
if mix_mgn&"" = mgn&"" then
valgt = "SELECTED"
else
valgt = ""
end if
Response.Write "<option value=tonevare1.asp?mixcust_serievar='" & mixcust_serievar & "&mixcust_glans="& mixcust_glans & "&mixfarve_farvesystem=" & mixfarve_farvesystem & "&mixfarve_farvenr=" & mixfarve_farvenr & "&mixemb_embst="& mixemb_embst & "&mix_mgn="&mgn&"' "&valgt&">" &formatnumber(mgn,2) & "</Option>"
antal=antal+1
mgn=mgn+mixemb_embst
wend
end if
end if
end if
end if
end if
Response.Write "</select>"
%>
</form></td>
</tr>
<tr>
<td valign="top" align="right" class="txt_colur1">Vælg afsendelses dato: </td>
<Form name='dropdown6' action='tonevare1.asp' method='get'>
<td valign="top" ><select name='status6' id="t200" onChange='surfto6(form)' class='soegfelt'>
<option value='tonevare1.asp 'selected >Vælg .....</option>
<%
lev_dato= Replace(Request.QueryString("lev_dato"),"'","")
if mixcust_serievar = "" or mixcust_serievar = null then
else
if mixfarve_farvesystem = "" or mixfarve_farvesystem = null then
else
If mixfarve_farvenr = "" or mixfarve_farvenr = null then
else
If mixemb_embst = "" or mixemb_embst = null then
else
If mix_mgn = "" or mix_mgn = null then
else
If lev_dato = "" or lev_dato = null then
SQL_levplan ="SELECT * from levplan WHERE levplan_cust='"& kundenummer &"'"
Set RS99 = Conn.Execute (SQL_levplan)
levplan_cust= RS99("levplan_cust")
levplan_days= RS99("levplan_days")
levplan_time= RS99("levplan_time")
levplan_mon = RS99("levplan_mon")
Levplan_tue = RS99("Levplan_tue")
levplan_wen = RS99("levplan_wen")
levplan_thu = RS99("levplan_thu")
levplan_fri = RS99("levplan_fri")
levplan_sat = RS99("levplan_sat")
levplan_sun = RS99("levplan_sun")
'START: find ud af om klokken er over max tid for ordre, hvis ja flyttes dagen med en dag
if datepart("w",date()) = 7 or datepart("w",date()) = 1 then
start_dag=0
else
if Cdbl(Time)>Cdbl(Cdate(rs99("levplan_time"))) then
start_dag=1
else
start_dag=0
end if
end if
SQL_wkday ="SELECT * from wkday LIMIT "& start_dag &",20"
Conn.Execute (SQL_wkday)
Set rs2 = conn.Execute(SQL_wkday)
Do While Not rs2.EOF or rs2.BOF
Response.Write "<option value=tonevare2.asp?mixcust_serievar='" & mixcust_serievar & "&mixcust_glans="& mixcust_glans & "&mixfarve_farvesystem=" & mixfarve_farvesystem & "&mixfarve_farvenr=" & mixfarve_farvenr & "&mixemb_embst="& mixemb_embst & "&mix_mgn="&mix_mgn&"&lev_dato="&rs2("wkday_date")&"'>" &rs2("wkday_date") & "</Option>"
rs2.movenext
loop
else
SQL_levplan ="SELECT * from levplan WHERE levplan_cust='"& kundenummer &"'"
Set RS99 = Conn.Execute (SQL_levplan)
levplan_cust= RS99("levplan_cust")
levplan_days= RS99("levplan_days")
levplan_time= RS99("levplan_time")
levplan_mon = RS99("levplan_mon")
Levplan_tue = RS99("Levplan_tue")
levplan_wen = RS99("levplan_wen")
levplan_thu = RS99("levplan_thu")
levplan_fri = RS99("levplan_fri")
levplan_sat = RS99("levplan_sat")
levplan_sun = RS99("levplan_sun")
'START: find ud af om klokken er over max tid for ordre, hvis ja flyttes dagen med en dag
if datepart("w",date()) = 7 or datepart("w",date()) = 1 then
start_dag=0
else
if Cdbl(Time)>Cdbl(Cdate(rs99("levplan_time"))) then
start_dag=1
else
start_dag=0
end if
end if
SQL_wkday ="SELECT * from wkday LIMIT "& start_dag &",20"
Conn.Execute (SQL_wkday)
Set rs2 = conn.Execute(SQL_wkday)
Do While Not rs2.EOF or rs2.BOF
if lev_dato&"" = rs2("wkday_date")&"" then
valgt = "SELECTED"
else
valgt = ""
end if
Response.Write "<option value=tonevare2.asp?mixcust_serievar='" & mixcust_serievar & "&mixcust_glans="& mixcust_glans & "&mixfarve_farvesystem=" & mixfarve_farvesystem & "&mixfarve_farvenr=" & mixfarve_farvenr & "&mixemb_embst="& mixemb_embst & "&mix_mgn="&mix_mgn&"&lev_dato="&rs2("wkday_date")&"' "&valgt&">" &rs2("wkday_date") & "</Option>"
rs2.movenext
loop
end if
end if
end if
end if
end if
end if
Response.Write "</select>"
%>
</form></td>
</tr>
</table>
</div>
</fieldset>
</body>
</html>
<%
'**Databasen lukkes igen**
conn.Close
Set conn = nothing
Set SQLvare = nothing
Set SQLlot = nothing
Set SQLmgn = nothing
%>