Avatar billede tma Juniormester
30. november 2006 - 14:52 Der er 7 kommentarer og
1 løsning

Opdatere datatræk afhængig af valg fra selectbox

Hej
Jeg har en side som starter med at hente nogle oplysninger fra en database. På siden er ligeledes en box hvor der er angivet værdierne "Alle", "Januar", "Februar" osv.
Til at starte med viser siden alle poster. Jeg vil gerne have den til, at når brugeren vælger f.eks. Juni, så skal jeg opdatere mit datatræk til at vise disse data. Jeg er såvidt, at jeg har lavet en Onchange hændelse som går fint nok ned i en funktion jeg har defineret (jeg er ikke særlig kyndig i funktioner i ASP), men den går fint derned, har testet via en msgbox.

Hvordan får jeg min side opdateret baseret på valgtet fra månedsboksen?
Avatar billede tma Juniormester
30. november 2006 - 15:00 #1
Lidt yderligere:
function Opdater()

    dim MyConn, SQL_query, RS, MyIden, AktSag
    response.write "<h1><div style='text-align:center'>Min overskrift</div></h1>"

    Set MyConn = Server.CreateObject("ADODB.Connection")
    MyConn.Open "PROVIDER=SQLOLEDB;DATA SOURCE=minsrv;UID=minusr;PWD=mitpass;DATABASE=mindb"

    SQL_query = "SELECT * FROM mintbl WHERE felt1 = '" & document.minform.select1.value & "' Order by Dato desc"
    Set RS = MyConn.Execute(SQL_query)
   
    IF rs.bof AND rs.eof THEN
        'Response.Write "Der er endnu ikke registreret oplysninger"
    ELSE

        response.write "<table border='1' cellspacing='1'>"
        response.write "<tr><TD><Strong>Dato</strong></TD><TD><Strong>felt1</strong></TD><TD><Strong>Status</strong></TD></TR>"
        While Not RS.EOF
            response.write("<tr><td>")
            response.write rs("Dato")
            response.write "</td><td>"
            response.write rs("felt1")
            response.write "</td><td>"
            response.write rs("Status")
            response.write "</td></TR>"
            RS.MoveNext
        Wend
        RS.Close

        response.write "</table>"
    END IF
    MyConn.Close

end function
Avatar billede kalp Novice
30. november 2006 - 16:32 #2
ASP kode skal skrive i efter denne blok <% og før denne block %>
og siden skal gemmes med ekstension .asp
Avatar billede ldanielsen Nybegynder
30. november 2006 - 22:59 #3
Du blander javascript og ASP sammen. Gør dette:

<form action="siden.asp" method="POST">
<select name="select1" onChange="this.form.submit();">
<option value="Alle">Alle</option>
<option value="Januar">Januar</option>
<option value="Februar">Februar</option>
</select>
</form>

Når du gør det, så sendes formen. Værdien af select'en får du ud med Request.Form:


    SQL_query = "SELECT * FROM mintbl WHERE felt1 = '" & Request.Form("select1") & "' Order by Dato desc"


Hvis din method var GET ville du skulle bruge Request.Querystring i stedet. Det hele er på én side, OK? Jeg har kalde den siden.asp
Avatar billede tma Juniormester
01. december 2006 - 09:15 #4
Hej Danielsen
Koden:
<html>
<title>Min test</title>
<head>
<meta name="Generator" content="Stone's WebWriter 4">
</head>
<body>
<%
IF session("Login") = "JA" then
    dim MyConn, SQL_query, RS, MyIden, AktSag
   
    set MyConn = Server.CreateObject("ADODB.Connection")
    MyConn.Open "PROVIDER=SQLOLEDB;DATA SOURCE=minsrv;UID=minbrug;PWD=mitpass;DATABASE=mindb"
    AktSag=Request.Form("select1")
    if AktMonth <> "" And AktMonth <> "Alle" then
        SQL_query = "SELECT * FROM mintbl WHERE Bruger = '" & Session("Username") & "' AND mymonth = '" &  AktMonth & "' Order by Dato desc"
    else
        SQL_query = "SELECT * FROM mintbl WHERE Bruger = '" & Session("Username") & "' Order by Dato desc"
    END IF
    response.write "SQL:" & sql_query
    Set RS = MyConn.Execute(SQL_query)
   
    IF rs.bof AND rs.eof THEN
        Response.Write "Der er endnu ikke registreret oplysninger på dette brugernavn"
    ELSE

        response.write("<table border='1' cellspacing='1'>")
        response.write "<tr><TD><Strong>Dato</strong></TD><TD><Strong>Sagsnr</strong></TD><TD><Strong>Status</strong></TD></TR>"
        While Not RS.EOF
            response.write("<tr><td>")
            response.write rs("Dato")
            response.write "</td><td>"
            response.write rs("mitfelt")
            response.write "</td><td>"
            response.write rs("Status")
            response.write "</td></TR>"
            RS.MoveNext
        Wend
        RS.Close

        response.write ("</table>")
    END IF
   
'**********
        response.write "<form name='MonthSelection' id='Sag' action='getdata.asp' method='post'>"
        response.write "<SELECT id='select1' style='WIDTH: 90px' name='SelBox'onChange='this.form.submit();' >"
        response.write "<Option value='Alle'>Alle</Option>"
        response.write "<Option value='JAN'>JAN</OPTION>"
        response.write "<Option value='Feb'>Feb</OPTION>"
        response.write "</form></SELECT>"
'***********
   
MyConn.Close
END IF
%>
</body></html>
Avatar billede tma Juniormester
01. december 2006 - 09:15 #5
Systemet skifter hele tiden tilbage til "Alle", og jeg får ikke hentet nye data.
Avatar billede ldanielsen Nybegynder
01. december 2006 - 13:02 #6
Det skal være SelBox i stedet for select1, et formfelt kendes på name, ikke på id.

I selecten skal du lave noget der gør at den rigtige er valgt. Se her:

'**********
%>
<form name="MonthSelection" id="Sag" action="getdata.asp" method="post">
  <SELECT id="select1" style="WIDTH: 90px;" name="SelBox" onChange="this.form.submit();">
    <Option value="Alle" <%if AktSag = "Alle" then Response.Write("selected")%>>Alle</Option>
    <Option value="JAN" <%if AktSag = "JAN" then Response.Write("selected")%>>JAN</Option>
    <Option value="Feb" <%if AktSag = "Feb" then Response.Write("selected")%>>Feb</Option>
  </SELECT>
</form>
<%
'***********
Avatar billede tma Juniormester
01. december 2006 - 13:36 #7
Fik mig gravet frem til en udemærket løsning. Listen springer dog stadig tilbage til første element, men her har jeg så sat en standardtekst. Der bliver alligevel filtreret efter mit valg.

Ligger du et svar?
Avatar billede tma Juniormester
05. november 2010 - 10:47 #8
Lukket
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