08. oktober 2002 - 23:11Der er
23 kommentarer og 2 løsninger
Stort problem med script
Jeg har et dynamisk script til 2 dropdown boxe.
Det virker som sådan fint, men hvis id'et til indholdet i dropdown box 2 IKKE er fortløbende kan den ikke finde ud af det.
Jeg ved ikke meget forstand på java, bare så du/I ved det...
Her er mit script:
<% sqltest = "select count(maerkeid) as antal from maerke" Set rstest = Conn.Execute(SQLtest) antallet = rstest("antal") + 1 response.write "afdelinger = new Array(" & antallet & ");" %> //Antallet af afdelinger + 1 for (i = 0; i < afdelinger.length; i++) afdelinger[i] = new Array(); afdelinger[0][0] = "Vælg Modeller"; <% sqltal1 = "select count(maerkeid) as antal from maerke" Set rstal = Conn.Execute(SQLtal1) antal = rstal("antal") for i=1 to antal
sqltal2 = "select count(modelid) as antal2 from model where maerkeid=" & i Set rstal2 = Conn.Execute(SQLtal2) antal2 = rstal2("antal2")
sql = "select model from model where maerkeid=" & i Set rs = Conn.Execute(SQL)
for t=0 to antal2 if not rs.eof then response.write "afdelinger["& i &"]["& t &"] = '" & rs("model") &"';" & vbCrLf rs.movenext end if 'rs.movefirst next rs.close 't = 0 next %>
function skift(frm) { ind = frm.maerke.selectedIndex; frm.model.length = afdelinger[ind].length; for (n = 0; n < afdelinger[ind].length; n++) { frm.model.options[n].text = afdelinger[ind][n]; frm.model.options[n].value = afdelinger[ind][n]; } } </script>
Og her er dropdown box 2:
<select name="model" style="width:160px;background-color:white"> <option value="[Alle modeller]">Vælg Modeller</option> </select><br><br>Årgang fra <select name="aar_start" style="width:60px;background-color:white"> <% sql = "select * from aar" Set es = Conn.Execute(SQL) es.movenext do while not es.eof response.write "<option value='"& es("db") &"'>" & es("aar") & "</option>" & vbCrLf es.movenext loop %> </select>
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Prøv at lægge koden for den viste side ind, altså vis siden i browseren, vælg vis koden, tryk ctrl a, ctrl c, og paste det herind, så er det lidt nemmere at overskue hvad der kommer ud.
Godt, nu tror jeg jeg er med. Du laver et array, der er helt hulter til bulter. Hvad er grunden til det? I din kode kommer de jo fortløbende, for i = 0... og for t = 0..., det burde da ikke give huller i talrækken.
Jamen det er jo et asp problem, ikke javascript. Jeg skal nok vide lidt mere om din database, for at hjælpe dig, men jeg kan se at du kalder sql = "select model from model where maerkeid=" & i hvor i er fortløbende. Derfor vil den kun tage de fortløbende. Så vidt jeg kan se, har du to tabeller, en der hedder maerke og en der hedder model. De hænger sammen med modelid. Det du skal have er en løkke der går alle dine maerker igennem, og for hver mærke, går alle de tilhørende modeller igennem. Altså noget i retning af: i = 0 t = 0 sql = "select * from maerke" set rs1 = conn(sql) response.write "afdelinger[" & i & "][0] = 'alle modeller';" & vbCrLf i = i + 1 do while not rs1.eof sql1 = "select * from model where id = " & rs1(0) set rs2 = conn(sql) do while not rs2.eof response.write "afdelinger[" & i & "][" & t & "] = '" & rs2("modelnavn")';" & vbCrLf t = t + 1 loop loop Jeg skal kunne se dine tabeller, for at vide om jeg har brugt de rigtige kolonner osv, men jeg håber du kan se ideen.
<% i = 0 t = 0 sql = "select * from maerke" set rs1 = conn.Execute(sql) response.write "afdelinger[" & i & "][0] = 'alle modeller';" & vbCrLf i = i + 1 do while not rs1.eof sql1 = "select * from model where maerkeid = " & rs1(2) set rs2 = conn.Execute(sql) do while not rs2.eof response.write "afdelinger[" & i & "][" & t & "] = '" & rs2("model")';" & vbCrLf t = t + 1 rs2.movenext loop rs1.movenext loop %>
Prøv det her: <% i = 0 t = 0 sql = "select * from maerke" set rs1 = conn.Execute(sql) do while not rs1.eof response.write "afdelinger[" & i & "][0] = 'alle modeller';" & vbCrLf i = i + 1 sql1 = "select * from model where maerkeid = " & rs1(2) set rs2 = conn.Execute(sql) do while not rs2.eof response.write "afdelinger[" & i & "][" & t & "] = '" & rs2("model")';" & vbCrLf t = t + 1 rs2.movenext loop rs1.movenext t = 0 loop %>
Jeg kan ikke lige gennemskue om response.write "afdelinger[" & i & "][0] = 'alle modeller';" & vbCrLf skal stå der eller ej. Det må du lige prøve dig frem med.
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.