Avatar billede gskairo Nybegynder
03. maj 2004 - 14:33 Der er 19 kommentarer og
1 løsning

"Holde" på værdi i dropdown box

Hej Eksperter,

Jeg har en dropdown box der bestemmer indholdet af en anden dropdown boks, på samme side. Det hele er lavet i Asp/Javascript. Når værdien i 1. dropdownbox vælges genlæser den siden og sætter værdien for næste dropdown box. Dette virker fint, men den nulstiller sig selv. Alså viser den 1. dropdown boksen altid første post i min DB. Jeg vil gerne have denne til at holde værdien sådan at dropdown boks 1 og 2 har relaterende data. Håber i kan forstå dette.
Min side ligger her så i kan se det.
http://dell97.eit.iha.dk/praktikf2004/test.asp
og koden ser således ud:

<%@LANGUAGE="JavaScript"%>
<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<title>Landkort over specialer og kompetencer indenfor medicoområdet</title>
</head>

<p align="center"><img src="aulogo.gif" width="150" height="150">
<br>
<font size="6">Landkort over specialer og kompetencer indenfor medicoområdet</font>
<br>

Vælg et nøgleord:<br>


<form action="test.asp"  method="GET" name="form1">
    <p align="center">
    <font size="3">
    Nøgleord :
    <select name="Value1" onChange= "document.form1.submit()">
    <%
//------------CONNECT TO DB--------------------------------
    //    con = Server.CreateObject("ADODB.Connection");
    //  con.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\\db1.mdb");
        var con = Server.CreateObject("ADODB.Connection");
        Response.Write(Application('db1_ConnectionString')); // 26/4
   
//    con.Open(DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\inetpub\wwwroot\praktikf2004\db1.mdb);
        con.Open(Application("db1_ConnectionString"));// Denne line giver fejl
    //  con.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=http://dell97.eit.iha.dk/praktikf2004/db1.mdb");
//------------EXTRACT DATA-------------------------------
    //  Response.Write(Application('db1_ConnectionString')); //26/4
        RS= con.Execute("SELECT * FROM BMT Order By Nøgleord");
        var Key; var Id;
        while(!RS.EOF)
        {
            Key= RS("Nøgleord");
            id = RS("Id");
//----------DISPLAY HTML
            %>
            <option value= "<% =id %>"> <% =Key %> </option> 
            <%
//-----------------------
            RS.MoveNext;
        }
//------------CLOSE DB
        RS.Close();
        con.Close();
        //Set Conn = Nothing;// 21/4
        RS = null;
        con =null;
//------------END OF DB STUFF %>;
</select></font>
</p>
</form>
<p align="center">Vælg beskrivelse af aktivitet:</p>
<body>
<body>
<form action="side4.asp" method="submit">
    <p align="center">
    <font size="3">
    Aktivitet :
    <select name="Value2">
    <%
//------------CONNECT TO DB--------------------------------
    //    con = Server.CreateObject("ADODB.Connection");
    //  con.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\\db1.mdb");
        con = Server.CreateObject("ADODB.Connection");
        con.Open(Application('db1_ConnectionString'));// HUSK ADODB OPSÆTNING OGSÅ PÅ SERVER
    //  con.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=http://dell97.eit.iha.dk/praktikf2004/db1.mdb"); BRUGES PÅ HJEMME PC
//------------EXTRACT DATA-------------------------------
var val = Request.Querystring('value1');

if(val > "0")
{
    RS= con.Execute("SELECT * FROM BMT2 WHERE Id = " + Request.queryString('Value1') ); //
        var Key; var Id;
       
    while(!RS.EOF)
        {
            Keys=RS('Key'); //
            Id=RS('NøgleordID');  //
//----------DISPLAY HTML
        %>
                <option value= "<% =Id %>"> <% =Keys %> </option>       
          <%
//-----------------------
            RS.MoveNext;
        }

//------------CLOSE DB
        RS.Close();
        con.close();       
        RS = null;
        con =null;
//------------END OF DB STUFF %>
</select></font><p align="center">Søg efter institutioner og nøglepersoner der beskæftigere sig med området.</p>
<p align="center"><input type="submit" name="B2" value="Søg">
</p>
</form>

<p>
<%
}
else
{

%>
                <option value= "0"> Vælg en værdi i boksen overfor </option>       
                </select></font>
           
            </p>
            </form>
          <%
}
%>
Avatar billede trumf Nybegynder
03. maj 2004 - 14:40 #1
<%@LANGUAGE="JavaScript"%>
<%
value1 = request("value1")
%>
<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<title>Landkort over specialer og kompetencer indenfor medicoområdet</title>
</head>

<p align="center"><img src="aulogo.gif" width="150" height="150">
<br>
<font size="6">Landkort over specialer og kompetencer indenfor medicoområdet</font>
<br>

Vælg et nøgleord:<br>


<form action="test.asp"  method="GET" name="form1">
    <p align="center">
    <font size="3">
    Nøgleord :
    <select name="Value1" onChange= "document.form1.submit()">
    <%
//------------CONNECT TO DB--------------------------------
    //    con = Server.CreateObject("ADODB.Connection");
    //  con.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\\db1.mdb");
        var con = Server.CreateObject("ADODB.Connection");
        Response.Write(Application('db1_ConnectionString')); // 26/4
   
//    con.Open(DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\inetpub\wwwroot\praktikf2004\db1.mdb);
        con.Open(Application("db1_ConnectionString"));// Denne line giver fejl
    //  con.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=http://dell97.eit.iha.dk/praktikf2004/db1.mdb");
//------------EXTRACT DATA-------------------------------
    //  Response.Write(Application('db1_ConnectionString')); //26/4
        RS= con.Execute("SELECT * FROM BMT Order By Nøgleord");
        var Key; var Id;
        while(!RS.EOF)
        {
            Key= RS("Nøgleord");
            id = RS("Id");
//----------DISPLAY HTML
            If value1 = id Then
            %>
            <option value= "<% =id %>" SELECTED> <% =Key %> </option> 
            <%
            Else
            %>
            <option value= "<% =id %>"> <% =Key %> </option> 
            <%
            End If
//-----------------------
            RS.MoveNext;
        }
//------------CLOSE DB
        RS.Close();
        con.Close();
        //Set Conn = Nothing;// 21/4
        RS = null;
        con =null;
//------------END OF DB STUFF %>;
</select></font>
</p>
</form>
<p align="center">Vælg beskrivelse af aktivitet:</p>
<body>
<body>
<form action="side4.asp" method="submit">
    <p align="center">
    <font size="3">
    Aktivitet :
    <select name="Value2">
    <%
//------------CONNECT TO DB--------------------------------
    //    con = Server.CreateObject("ADODB.Connection");
    //  con.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\\db1.mdb");
        con = Server.CreateObject("ADODB.Connection");
        con.Open(Application('db1_ConnectionString'));// HUSK ADODB OPSÆTNING OGSÅ PÅ SERVER
    //  con.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=http://dell97.eit.iha.dk/praktikf2004/db1.mdb"); BRUGES PÅ HJEMME PC
//------------EXTRACT DATA-------------------------------
var val = Request.Querystring('value1');

if(val > "0")
{
    RS= con.Execute("SELECT * FROM BMT2 WHERE Id = " + Request.queryString('Value1') ); //
        var Key; var Id;
       
    while(!RS.EOF)
        {
            Keys=RS('Key'); //
            Id=RS('NøgleordID');  //
//----------DISPLAY HTML
        %>
                <option value= "<% =Id %>"> <% =Keys %> </option>       
          <%
//-----------------------
            RS.MoveNext;
        }

//------------CLOSE DB
        RS.Close();
        con.close();       
        RS = null;
        con =null;
//------------END OF DB STUFF %>
</select></font><p align="center">Søg efter institutioner og nøglepersoner der beskæftigere sig med området.</p>
<p align="center"><input type="submit" name="B2" value="Søg">
</p>
</form>

<p>
<%
}
else
{

%>
                <option value= "0"> Vælg en værdi i boksen overfor </option>       
                </select></font>
           
            </p>
            </form>
          <%
}
%>
Avatar billede roenving Novice
03. maj 2004 - 14:40 #2
Sæt

var val = Request.Querystring('value1');

op forrest i scriptet, og i udskrivningen af den første:

            <option value="<% =id %>" <%if(val==id)//udskriv selected// %>> <% =Key %> </option> 

-- og jeg kender i den syntaks for udskrift ...
Avatar billede roenving Novice
03. maj 2004 - 14:43 #3
Eller med et udgangspunkt trumf tager:

if(val==id){%>
            <option value="<% =id %>" selected> <% =Key %> </option> 
<%}else{%>
            <option value="<% =id %>"> <% =Key %> </option> 
<%}
Avatar billede trumf Nybegynder
03. maj 2004 - 14:49 #4
roenving> Det kommer fra en form, så querystring virker ikke, det skal være form.
Jeg er sommetider ude for, at man kan komme til siden flere steder fra, så request alene er bedre i mange tilfælde.
Avatar billede trumf Nybegynder
03. maj 2004 - 14:51 #5
gskairo kan dog bare tage hele den kode jeg har sat ind, det vil virke fint.
Avatar billede roenving Novice
03. maj 2004 - 14:54 #6
-- du bruger da vbscript midt inde i en lang javascript-smøre ...
Avatar billede gskairo Nybegynder
03. maj 2004 - 14:56 #7
Dit script virker ikke Trumf.
Avatar billede gskairo Nybegynder
03. maj 2004 - 15:04 #8
roenving : Ved brug af din første script får jeg ingen værdi i første dropdown boks. Man kan godt vælge en værdi men man kan ikke se dem ??

<option value="<% =id %>" <%if(val==id)//udskriv selected// %>> <% =Key %> </option> 
Skal jeg indsætte noget istedet for //udskriv Selected// ???
Avatar billede trumf Nybegynder
03. maj 2004 - 15:04 #9
Man kan da sagtens blande vb- og javascript!!!

Hvad får du af fejl ?
Avatar billede trumf Nybegynder
03. maj 2004 - 15:06 #10
gskairo, det er fordi roenving har skrevet request.querystring, det skal være request.form, eller bare request, som jeg påpeger.
Avatar billede gskairo Nybegynder
03. maj 2004 - 15:08 #11
I din kode får jeg at ; er forventet overalt i linen ?? på  plads1 og 2 og 3 og....
Avatar billede trumf Nybegynder
03. maj 2004 - 15:09 #12
Jeg vil desuden lige tilføje, at det er bedre at bruge ASP end JS da det afvikles meget hurtigere på serveren end JS på klienten + overførsel, det er ikke meget, men mange bække små, og man skal vel holde en standard på sin programmeringsskik :-)
Avatar billede trumf Nybegynder
03. maj 2004 - 15:11 #13
Nåh ja, klart. Brug dette i stedet.

<%@LANGUAGE="JavaScript"%>
<%
value1 = request("value1")
%>
<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<title>Landkort over specialer og kompetencer indenfor medicoområdet</title>
</head>

<p align="center"><img src="aulogo.gif" width="150" height="150">
<br>
<font size="6">Landkort over specialer og kompetencer indenfor medicoområdet</font>
<br>

Vælg et nøgleord:<br>


<form action="test.asp"  method="GET" name="form1">
    <p align="center">
    <font size="3">
    Nøgleord :
    <select name="Value1" onChange= "document.form1.submit()">
    <%
//------------CONNECT TO DB--------------------------------
    //    con = Server.CreateObject("ADODB.Connection");
    //  con.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\\db1.mdb");
        var con = Server.CreateObject("ADODB.Connection");
        Response.Write(Application('db1_ConnectionString')); // 26/4
   
//    con.Open(DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\inetpub\wwwroot\praktikf2004\db1.mdb);
        con.Open(Application("db1_ConnectionString"));// Denne line giver fejl
    //  con.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=http://dell97.eit.iha.dk/praktikf2004/db1.mdb");
//------------EXTRACT DATA-------------------------------
    //  Response.Write(Application('db1_ConnectionString')); //26/4
        RS= con.Execute("SELECT * FROM BMT Order By Nøgleord");
        var Key; var Id;
        while(!RS.EOF)
        {
            Key= RS("Nøgleord");
            id = RS("Id");
//----------DISPLAY HTML
            <%
            If value1 = id Then
            %>
            <option value= "<% =id %>" SELECTED> <% =Key %> </option> 
            <%
            Else
            %>
            <option value= "<% =id %>"> <% =Key %> </option> 
            <%
            End If
            %>
//-----------------------
            RS.MoveNext;
        }
//------------CLOSE DB
        RS.Close();
        con.Close();
        //Set Conn = Nothing;// 21/4
        RS = null;
        con =null;
//------------END OF DB STUFF %>;
</select></font>
</p>
</form>
<p align="center">Vælg beskrivelse af aktivitet:</p>
<body>
<body>
<form action="side4.asp" method="submit">
    <p align="center">
    <font size="3">
    Aktivitet :
    <select name="Value2">
    <%
//------------CONNECT TO DB--------------------------------
    //    con = Server.CreateObject("ADODB.Connection");
    //  con.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\\db1.mdb");
        con = Server.CreateObject("ADODB.Connection");
        con.Open(Application('db1_ConnectionString'));// HUSK ADODB OPSÆTNING OGSÅ PÅ SERVER
    //  con.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=http://dell97.eit.iha.dk/praktikf2004/db1.mdb"); BRUGES PÅ HJEMME PC
//------------EXTRACT DATA-------------------------------
var val = Request.Querystring('value1');

if(val > "0")
{
    RS= con.Execute("SELECT * FROM BMT2 WHERE Id = " + Request.queryString('Value1') ); //
        var Key; var Id;
       
    while(!RS.EOF)
        {
            Keys=RS('Key'); //
            Id=RS('NøgleordID');  //
//----------DISPLAY HTML
        %>
                <option value= "<% =Id %>"> <% =Keys %> </option>       
          <%
//-----------------------
            RS.MoveNext;
        }

//------------CLOSE DB
        RS.Close();
        con.close();       
        RS = null;
        con =null;
//------------END OF DB STUFF %>
</select></font><p align="center">Søg efter institutioner og nøglepersoner der beskæftigere sig med området.</p>
<p align="center"><input type="submit" name="B2" value="Søg">
</p>
</form>

<p>
<%
}
else
{

%>
                <option value= "0"> Vælg en værdi i boksen overfor </option>       
                </select></font>
           
            </p>
            </form>
          <%
}
%>
Avatar billede gskairo Nybegynder
03. maj 2004 - 15:17 #14
@Trumf : den kode giver samme resultat som Roenvigs alså der er ingen værdier i den første boks. og en fejl hvis man vælger en værdi. Den er lagt ud på linket
http://dell97.eit.iha.dk/praktikf2004/test.asp
Avatar billede gskairo Nybegynder
03. maj 2004 - 15:20 #15
det var en fejl. Det var min chache jeg fik frem. den giver fejl fra
her :  <%
            If value1 = id Then
            %>
            <option value= "<% =id %>" SELECTED> <% =Key %> </option> 
            <%
            Else
            %>
            <option value= "<% =id %>"> <% =Key %> </option> 
            <%
            End If
            %>
og frem?? Jeg ved ikke lige hvorfor
Avatar billede trumf Nybegynder
03. maj 2004 - 15:29 #16
For mig ser det ikke ud som en fejl i koden. Snarere at det er noget med databasen, for den laver jo DD, men der er bar ikke noget i den.

Det er værdien i Key der ikke skrives!
Avatar billede gskairo Nybegynder
03. maj 2004 - 15:37 #17
DD???? Jeg har 2 tabeller med samme ID og der er data på alle pladser.

Jeg havde prøvet at rette lidt i det men prøve lige linket igen da det er den præcise kode du lagde op.
Avatar billede roenving Novice
03. maj 2004 - 16:34 #18
>>trumf 03/05-2004 15:09:59

-- det er da noget vrøvl ...

Jscript og VBscript afvikles stort set lige hurtigt på serveren, og man kan vælge at bruge VB- eller Jscript i asp (Active ServerPages !-), som er en arkitektur, ikke et programmerings- eller scriptingsprog ...
Avatar billede olebole Juniormester
03. maj 2004 - 18:23 #19
<ole>

Desuden er det helt elementært, altid at lade klienten overtage så meget af arbejdet, som overhovedet muligt. Langt de fleste PC'er står jo og strutter af ubrugt RAM og CPU-kraft - hvorimod serveren let bliver hårdt belastet ... hvis sitet ellers er interessant  ;o)

/mvh
</bole>
Avatar billede gskairo Nybegynder
29. juli 2009 - 08:39 #20
luk da den er for gammel
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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