Avatar billede kagge Nybegynder
11. september 2003 - 11:39 Der er 8 kommentarer og
1 løsning

Selectmenu med tilhørende visningsfelt

Har lige et lille problem:

Hvis jeg har en tabel i Access:

Tabel 1 (Sted)
Navn
Omrnr

Jeg henter indholdet af "Navn" kolonnen ud i en selectmenu på følgende måde:

<SELECT NAME="tjenestested1" TABINDEX="2" onChange="select_tjenestested1(this.selectedIndex)">
<OPTION></OPTION>
<%
CONST adOpenStatic = 3, adLockReadOnly = 1, adCmdText = &H0001
Dim connectionString, CONN_USER, CONN_PASS
Dim recordSet21
Dim forbindelse
Dim strSQL21
Dim navn21

connectionString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("xxx.mdb")
set recordSet21 = server.CreateObject("ADODB.Recordset")
set forbindelse = server.CreateObject("ADODB.Connection")

forbindelse.Open connectionString, CONN_USER, CONN_PASS

strSQL21 = "SELECT (Navn) FROM Sted"
set recordSet21 = forbindelse.Execute (strSQL21)

do until recordSet21.eof
navn21 = recordSet21("Navn")

%>
<option value="<%=navn21%>"><%=navn21%></option>
<%
recordSet21.movenext
loop
recordSet21.Close
Set recordSet21 = Nothing

%>
</SELECT>

Det går fint nok... Hvordan skal jeg gøre hvis jeg vil have vist det "Omrnr" som er tilknyttet "Navn" i et visningsfelt.

<INPUT TYPE="text" SIZE="3" NAME="omr" disabled>

Det vil sige at når jeg vælger i selectmenuen så skal visningsfeltet opdateres med det tilhørende "omrnr"
Avatar billede eagleeye Praktikant
11. september 2003 - 14:45 #1
Det kommer an på om siden må reloades og finde det tilhørne omrnr eller om man skal trække både navn og omrnr ud og lave et Javascript som opdater feltet omr når man vælger et navn??
Avatar billede kagge Nybegynder
12. september 2003 - 07:48 #2
=> Eagleeye

Siden må ikke reloades. Man skal nok trække det tilhørende omrnr med ud og så lave et javascript som opdaterer feltet omr når man vælger et navn...

Har du et bud på hvordan det kan laves?
Avatar billede eagleeye Praktikant
12. september 2003 - 16:42 #3
Ja jeg har et eks. Dette eks er hendter alle postnr og bynavne fra en tabel og liste post nummerne i en dropbown og når der vælges et post nummer udfyldes bynavnet automatisk.

Du kan evt. prøve at se om du kan få det til at virke med dit, eller så bare spørg ;)

<%
set rs = server.CreateObject("ADODB.Recordset")
set Conn= server.CreateObject("ADODB.Connection")
Conn.Open "Data Source="& server.mappath("db10.mdb") & ";Provider=Microsoft.Jet.OLEDB.4.0;"
%>
<HTML>
<head>
<SCRIPT LANGUAGE="JavaScript">
function postnrChange(){
  var bynavnarr = new Array();
  bynavnarr[0] = "";
<%
set RS= Conn.Execute ("SELECT * FROM postnumre")
OptionString = "<OPTION VALUE=""none"">Vælg her...</OPTION>"
i = 1
Do Until RS.EOF   
    OptionString = OptionString & "<OPTION VALUE=""" & rs("postnr") & """>" & rs("postnr") & "</OPTION>"
    %>
    bynavnarr[<%=i%>] = "<%=rs("bynavn")%>";
    <%
    i = i +1
    rs.MoveNext
Loop
rs.Close
Conn.close
%>
  if (document.testForm.postnr.selectedIndex > 0)
  {
    document.testForm.bynavn.value = bynavnarr[document.testForm.postnr.selectedIndex];
  }
  else
  {
    document.testForm.bynavn.value = "";
  }
}
</SCRIPT>
</head>
<body onload="postnrChange()"><center>

<form name="testForm">
<table>
<tr>
<td><select name="postnr" size="1" OnChange="postnrChange();"><%=OptionString%></select></td>
<td><input type="text" name="bynavn" size="16" ></td>
</tr>
</table>
</form>

</center>
</body>
</HTML>
Avatar billede kagge Nybegynder
12. september 2003 - 17:13 #4
Ok.. jeg vil prøve det af når jeg kommer på arbejde på mandag og så vender jeg lige tilbage...

Men foreløbig tak for hjælpen :)
Avatar billede kagge Nybegynder
15. september 2003 - 10:06 #5
Har problemer med at flette dit kodeeksempel ind i min egen kode. Sådan som det er nu:

Script-delen:

function select_tjenestested1() {
  ty = document.registrering.tjenestested1.value

  if (ty == "") {
      document.registrering.tjenestested1startdato.value = '';
      document.all.id25.style.display = 'none';
      document.all.id26.style.display = 'none';
      document.all.id63.style.display = 'none';
      document.all.id64.style.display = 'none';
  }
  else {
      document.all.id25.style.display = 'block';
      document.all.id26.style.display = 'block';
      document.all.id63.style.display = 'block';
      document.all.id64.style.display = 'block';

  }
}



<SELECT NAME="tjenestested1" TABINDEX="2" onChange="select_tjenestested1(this.selectedIndex)">
<OPTION></OPTION>
<%
CONST adOpenStatic = 3, adLockReadOnly = 1, adCmdText = &H0001
Dim connectionString, CONN_USER, CONN_PASS
Dim recordSet21
Dim forbindelse
Dim strSQL21
Dim navn21

connectionString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("Stamdata.mdb")
set recordSet21 = server.CreateObject("ADODB.Recordset")
set forbindelse = server.CreateObject("ADODB.Connection")

forbindelse.Open connectionString, CONN_USER, CONN_PASS

strSQL21 = "SELECT (Halnavn) FROM Synssted"
set recordSet21 = forbindelse.Execute (strSQL21)

do until recordSet21.eof
navn21 = recordSet21("Halnavn")

%>
<option value="<%=navn21%>"><%=navn21%></option>
<%
recordSet21.movenext
loop
recordSet21.Close
Set recordSet21 = Nothing

%>
</SELECT>

Visningsfeltet:

<div id="id64" style="display:none">
<INPUT TYPE="text" SIZE="15" NAME="tjenestested1planomr" TABINDEX="8" disabled>
</div>


Som det er nu selecter jeg "Halnavn" Som svarer til Postnr i dit eksempel. Feltet som svarer til By hedder "Planomrnr". Som du kan se så har min selectmenu en onChange som viser/skjuler nogle divs så hvis man kunne lægge noget af din kode ind i denne onChange... Jeg ved bare ikke lige hvordan det skal gøres. Du skal nok få nogle flere point hvis du kan skrue din kode ind i min :)
Avatar billede eagleeye Praktikant
15. september 2003 - 23:52 #6
Da man både skal lave et javascript array samt flyde en <option> list er det lavet sådan at <option> laves i en streng på samme tid som arrayey laves og skrive samlet ud når der er behov for det. Prøv dette:


Jeg har være nød til at udkommentere et par linjer i dit javascitp hvor den forsøger at vise og fjerne nogle id's som ikke er, samt navet på det indput som values skulle rettes på er rette:


<%
CONST adOpenStatic = 3, adLockReadOnly = 1, adCmdText = &H0001
Dim connectionString, CONN_USER, CONN_PASS
Dim recordSet21
Dim forbindelse
Dim strSQL21
Dim navn21

connectionString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("Stamdata.mdb")
set recordSet21 = server.CreateObject("ADODB.Recordset")
set forbindelse = server.CreateObject("ADODB.Connection")

forbindelse.Open connectionString, CONN_USER, CONN_PASS

strSQL21 = "SELECT (Halnavn), Planomrnr FROM Synssted"
set recordSet21 = forbindelse.Execute (strSQL21)
%>
<html>
<body>

<script>
function select_tjenestested1(index) {
  var Planomrnrarr = new Array();
  Planomrnrarr[0] = "";
<%
'lav option liste og javascript array som indeholder Planomrnr
OptionString = "<OPTION VALUE=""none"">Vælg her...</OPTION>"
i = 1
Do Until recordSet21.EOF   
    OptionString = OptionString & "<OPTION VALUE=""" & recordSet21("Halnavn") & """>" & recordSet21("Halnavn") & "</OPTION>"
    %>
    Planomrnrarr[<%=i%>] = "<%=recordSet21("Planomrnr")%>";
    <%
    i = i +1
    recordSet21.MoveNext
Loop
recordSet21.Close
forbindelse.close
%>

  if (index == 0) {
      document.registrering.tjenestested1planomr.value = '';
//      document.all.id25.style.display = 'none';
//      document.all.id26.style.display = 'none';
//      document.all.id63.style.display = 'none';
      document.all.id64.style.display = 'none';
  }
  else {
      document.registrering.tjenestested1planomr.value = Planomrnrarr[index];
      //document.all.id25.style.display = 'block';
      //document.all.id26.style.display = 'block';
      //document.all.id63.style.display = 'block';
      document.all.id64.style.display = 'block';
  }
}
</script>


<form name="registrering">
<SELECT NAME="tjenestested1" TABINDEX="2" onChange="select_tjenestested1(this.selectedIndex)">
<%=OptionString%>
</SELECT>

Visningsfeltet:

<div id="id64" style="display:none">
<INPUT TYPE="text" SIZE="15" NAME="tjenestested1planomr" TABINDEX="8" >
</div>

</form>

</body>
</html>
Avatar billede kagge Nybegynder
16. september 2003 - 08:53 #7
Så virker skidtet lige som det skal :)

=>eagleeye

Du må lige poste et svar så du kan høste nogle point...
Avatar billede eagleeye Praktikant
16. september 2003 - 13:09 #8
Jo da..
Ok her et svar ;)
Avatar billede kagge Nybegynder
16. september 2003 - 13:24 #9
fino
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
Kurser inden for grundlæggende programmering

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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel