02. april 2003 - 09:28Der er
13 kommentarer og 1 løsning
Dynamiske dropdown bokse - Kan nogen lave dette script om ??
Jeg er interesseret i at få nogle andre værdier ud til min form - I den 1. dropdown boks kan man vælge amt og på grundlag af værdien i denne - kan man herefter vælge kommune. Som scriptet er nu - får man kommune id ud af formen. Jeg er interesseret i at få netop de værdier ud - som man vælger i de 2 dropdown bokse - altså amt og kommune
Håber der er en der svarer hurtigt - da det haster og da jeg ikke er en ørn til JavaScript ;-)
Her følger scriptet
<% @LANGUAGE = VBScript %> <%
Option Explicit
Dim conn, sql_amt, sql_kom, rs, arrAmter, arrKommuner, print_amter, print_js, i, j, count
Set conn = Server.CreateObject("ADODB.Connection") conn.Open "DRIVER={MySql}; SERVER=localhost; DATABASE=eksperten; UID=root; PWD="
sql_amt = "SELECT amtID,amt FROM exp_amter ORDER BY amt" sql_kom = "SELECT amtID,kommuneID,kommune FROM exp_kommune ORDER BY amtID, kommune"
Set rs = conn.Execute(sql_amt) arrAmter = rs.GetRows() rs.Close Set rs = Nothing
Set rs = conn.Execute(sql_kom) arrKommuner = rs.GetRows() rs.Close Set rs = Nothing
conn.Close Set conn = Nothing
For i = 0 to Ubound(arrAmter,2) print_amter = print_amter & "<option value=""" & arrAmter(0,i) &""">" & arrAmter(1,i) & "</option>" & VbCrLf print_js = print_js & "kommuner[" & arrAmter(0,i) & "] = new Array (" count = 0 For j = 0 to Ubound(arrKommuner,2) If arrKommuner(0,j) = arrAmter(0,i) Then If count = 0 Then print_js = print_js & "'0#Vælg kommune','" & arrKommuner(1,j) & "#" & arrKommuner(2,j) & "'" Else print_js = print_js & ",'" & arrKommuner(1,j) & "#" & arrKommuner(2,j) & "'" End If count = count + 1 End If Next print_js = print_js & ")" & VbCrLf Next
%>
<html> <head> <script language"JavaScript"> <!--
var kommuner = new Array() kommuner[0] = new Array ('0#Vælg først et amt') <%= print_js %>
function getKommuner() { var frm = document.formular; var amt_id = frm.list_amt.value; var i; frm.list_kom.options.length = 0; for (i = 0; i < kommuner[amt_id].length; i++) { arr_split = kommuner[amt_id][i].split("#"); var no = new Option(); no.value = arr_split[0]; no.text = arr_split[1]; frm.list_kom[i] = no; } }
OK - det er jo rent html - så jeg har set kilden - men jeg skulle gerne bruge en hvor den henter det fra tabeller, idet html koden ville blive alt for omfattende - da det ville blive temmelig lange lister. Endvidere skulle jeg ind og redigere i html - hvergang der skete en ændring - det er nemmere at tilføje det til en database - ellers tak for tilbuddet :-)
Synes godt om
Slettet bruger
02. april 2003 - 15:48#5
Du får jo bare ASP til at skrive HTML'et og JavaScriptet ud. Sværere er det ikke.
Jeg har siddet lidt og rodet med det - Men jeg har lidt problemer - hvordan får jeg udtrækket fra min database smidt over i array'et i java script funktionen - således at dette kan ses i den 2. dropdownboks ???
Synes godt om
Slettet bruger
03. april 2003 - 15:53#8
Du laver bare noget kode, der udskriver:
afdelinger[0][0] = "<--";
... og en løkke:
for hver amt: for hver kommune i amt skriv: afdelinger[AMT-NUMMER][KOMMUNE-NUMMER] = "KOMMUNE";
Amt amtnr amtnavn kommune amtnr kommunenr kommunenavn
således at din løkke ville se sådan ud se sådan ud amt[amtnr][kommunenr]="kommune";
dvs jeg skal trække kommune ind i løkken hvor amt.amtnr = kommune.amtnr. er det forstået rigtigt. Iså fald - hvis jeg laver et sql udtræk kan det så passe at det er strsql = "select amtnr, kommune from kommunedb where amtnr= '" & amtnr & "' order by kommune" conn.execute(strsql) Do While not rs.EOF strkom = rs("kommune") Rs.MoveNext Loop Do Loop While Not rs.EOF Conn.Close Set Conn = Nothing
Og så er det jeg skal have lagt det array'et ---- hvordan ??
Som sagt - jeg er ikke så stærk til java :-(
Synes godt om
Slettet bruger
03. april 2003 - 21:47#10
Du skal have to løkker; en der kører amterne igennem og en, der kører kommunerne i det aktuelle amt igennem. Hvad du skal gøre derfra kan jeg nok ikke hjælpe dig med. Måske bør du spørge i ASP-kategorien. Nu har du i hvert fald scriptet, som det hele skal ind i - og så tager det nok ikke så langt tid for eksperterne at finde ud af, hvad du så skal gøre.
Phoenixv - Jeg fandt ud af det - Jeg skulle blot bruge lidt tålmodighed - Efter jeg skrev sql sætning ud som det står i dit script - virker det perfekt tak for hjælpen
Synes godt om
Slettet bruger
04. april 2003 - 15:28#12
Så skal du nok overveje at give point en anden gang... Men det går nok for nu; andre brugere kan dog blive sure over sådan noget.
Jeg troede du havde fået point - når jeg accepterede svaret - Det er første gang jeg har stillet spørgsmål - så jeg kender ikke rigtigt systemet. Selvfølgelig skal du have din point - kan jeg give dem til dig nu eller ?? - pointsystemet er næsten sværere end asp ;-)
Synes godt om
Slettet bruger
08. april 2003 - 17:43#14
Nej, nu er det for sent. Men jeg skal svare, før du kan acceptere mit svar. Og jeg svarer først, når jeg er helt sikker på, at mit svar er korrekt i sammenhængen. Men som sagt: Det går nok, 30 point betyder ingenting.
Synes godt om
Ny brugerNybegynder
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.