Avatar billede kagge Nybegynder
16. juli 2002 - 08:25 Der er 4 kommentarer og
1 løsning

Selectmenu med options fra db

Hvis man har nedenstående 2 selectmenuer:

<SELECT NAME="nummer">
    <OPTION VALUE=""></OPTION>
    <OPTION VALUE="1">1</OPTION>
    <OPTION VALUE="2">2</OPTION>
    <OPTION VALUE="3">3</OPTION>
</SELECT>

<SELECT NAME="navn">
    <OPTION VALUE=""></OPTION>
    <OPTION VALUE="kaj">Kaj</OPTION>
    <OPTION VALUE="bent">Bent</OPTION>
    <OPTION VALUE="thomas">Thomas</OPTION>
</SELECT>

Her er værdierne lagt ind i menuerne, men hvad nu hvis man vil hente værdierne i en accessdatabase.

Det vil sige jeg har en tabel ved navn "oplysninger" bestående af 2 kolonner (personalenummer og navn). Nu vil jeg hente disse værdier fra databasen og over i selectmenuerne&#8230;..

Desuden skal de 2 selectmenuer arbejde sammen, så hvis man f.eks. vælger personalenummer 1111, så bliver det tilhørende navn vist i den anden selectmenu og omvendt.

Håber i forstår problemstillingen&#8230;.

Jeg plejer at connecte til databasen med nedenstående kode&#8230;&#8230;.

CONST adOpenStatic = 3, adLockReadOnly = 1, adCmdText = &H0001
Dim connectionString, CONN_USER, CONN_PASS
Dim recordSet
Dim forbindelse
Dim strSQL

connectionString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("xxx.mdb")
Set forbindelse = Server.CreateObject("ADODB.Connection")
Set recordSet = Server.CreateObject("ADODB.recordSet")
forbindelse.Open connectionString, CONN_USER, CONN_PASS

strSQL = "SELECT et eller andet"

recordSet.Open strSQL, forbindelse, adOpenStatic, adLockReadOnly, adCmdText
Avatar billede kagge Nybegynder
16. juli 2002 - 08:29 #1
Var lidt i tvivl om spørgsmålet skulle være under Javascript eller asp, men nu blev det under asp
Avatar billede eagleeye Praktikant
16. juli 2002 - 09:11 #2
Jeg har dette eks som er lavet med Javascript... :


<html>
<head>
<title></title>

<script language = "JavaScript">

<!-- hide me
<%
'Jeg har to tabeller til dette eks, første tabel:
'Tabel navn: ting
' select1ID : autonummer
' select1navn : tekst
'Den anden tabel:
'Tabel navn: select2
' ID : autonummer
' select1ID : tal (indeholder tallet select1ID som svare til select1ID)
' select2navn : tekst
set rs = server.CreateObject("ADODB.Recordset")
set rsSel2 = server.CreateObject("ADODB.Recordset")
set conn = server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db9.mdb")
'Lav SQL som hendter info the select1
strSQL = "SELECT * FROM ting"
set rs = conn.Execute (strSQL)
select1Options = ""
firstName = ""
do while not rs.EOF
  if firstName = "" then
    firstName = "Arr_" & rs("select1ID")
  end if
  select1Options = select1Options & "<option value=Arr_" & rs("select1ID") & ">" & rs("select1navn") & "</option>"
  strSQL = "SELECT * FROM select2 WHERE select1ID = " & rs("select1ID")
  Set rsSel2 = conn.execute (strSQL)
  %>
  var Arr_<%=rs("select1ID")%> = new Array(
  <%
  do while not rsSel2.EOF
    Response.Write """" & rsSel2("select2navn") & """"
    rsSel2.MoveNext
    if not rsSel2.EOF then
      Response.Write ","
    end if
  loop
  %>
  );
  <%
  rs.MoveNext
loop
%>

function opdaterSelect2(the_array_name)
{
    //var numbers_select = window.document.formnavn.the_examples;
    var the_array = eval(the_array_name);
    setOptionText(window.document.formNavn.select2, the_array);
}

function setOptionText(the_select, the_array)
{ 
    //slet indholdet at select2 inde de nye ligges ind.
    no_in_select = the_select.options.length;
    for (loop=0; loop <= no_in_select; loop++)
    {
        the_select.remove(0);
    }
    //fyld select2 op med nye data
    for (loop=0; loop < the_array.length; loop++)
    {
      var oOption = document.createElement("OPTION");
      oOption.text=the_array[loop];
      the_select.add(oOption);
    }
}

function udfyldSelect2()
{
  setOptionText (window.document.formNavn.select2,<%=firstName%>);
}
// show me -->

</script>
</head>
<body onLoad="udfyldSelect2()">
<form name="formNavn">
<select name="select1"
onChange="opdaterSelect2(window.document.formNavn.select1.options[selectedIndex].value);">
<%=select1Options%>
</select>

<select name="select2">
</select>
</form>

</body>
</html>
Avatar billede kagge Nybegynder
16. juli 2002 - 09:31 #3
Ok tak.. jeg kigger lige på det og vender tilbage senere....
Avatar billede kagge Nybegynder
16. juli 2002 - 10:12 #4
Nu har jeg sat din kode ind og tabelnavnene er nu de samme som dem du har. Jeg er bare lidt i tvivl om i hvilken tabel og feltnavn jeg skal placere henholdsvis navne og personalenumrene (I den ene tabel er der jo 3 felter mens der kun er 2 i den anden)
Avatar billede kagge Nybegynder
16. juli 2002 - 11:49 #5
Jeg har selv lige prøvet at rode med det og fået det til at virke. Så eagleeye tusind tak for hjælpen...
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