Avatar billede starf Nybegynder
09. juli 2002 - 03:32 Der er 18 kommentarer og
1 løsning

Hjælp til problem med listing af kategorier

Hey

Databasen ser sådan her ud:
følgende tabeller:
billeder
kategori

billede tabellen har følgede collumer
serie
info_txt
date
kategori
id1

kategori tabellen har følgede columer
id1
navn

------------------------------------------

har så fået lavet en pull down menu der vælger kategori navnet, og lavet en admin menu der tager alle de navne der er i kategori tabellen og sætter over i billede tabellen. så man kan oprette nye kategorier via en admin menu og tildele det til et billede

Det jeg så gerne vil have nu er en pull down menu med kategorier, som er taget ud af kategori tabellen.. når man så vælger et navn i kategori tabellen skal den vise alle de poster der er i billede tabellen med den kategori.... Hvis det giver meningen... ved ikke rigtigt hvad jeg mere skal efter jeg har fået lavet den liste der henter kategori navne så hvis der var en der kunne hjælpe vil det være perfekt....

her er koden til min kategori list ting
---------------------------------------
<%       
dim objConn, objRS

set objConn = server.CreateObject("ADODB.Connection")
set objRS = Server.CreateObject("ADODB.Recordset")

objConn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database/database.mdb")

objConn.Open

Set objRS = objConn.Execute("SELECT * FROM kategori")

If Not objRS.EOF Then

    response.write "<SELECT NAME=""SELECT"">" & vbCrLf

Do Until objRS.EOF

    Response.Write "<OPTION VALUE=""" & objRS("id1") & """>" & objRS("navn") & "</OPTION>" & vbCrLf

    objRS.MoveNext
Loop

    response.write "</SELECT>" & vbCrLf

End If


If objRS.State = 1 Then objRS.Close
Set objRS = Nothing

If objConn.State = 1 Then objConn.Close
Set objConn = Nothing

%>
-------------------------------------------

Håber der er nogle der vil hjælpe
Avatar billede dk_akj Nybegynder
09. juli 2002 - 08:26 #1
Du skal bruge noget javascript. her er et hint til hvordan du kommer videre:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

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

<body>
<script language="JavaScript">


function CreateSelectEntry( entryLabel, entryValue)
{
    pic.options[pic.length] = new Option(entryLabel,entryValue);
}
</script>

<SELECT NAME=SearchBy onChange=CreateSelectEntry(this[this.selectedIndex].value,"Value")>
  <OPTION VALUE=xx SELECTED>Vælg Kategori
  <OPTION VALUE=aa>Billedgruppe A
  <OPTION VALUE=bb>Billedgruppe B
  <OPTION VALUE=cc>Billedgruppe C
</SELECT>

<select name="pic" SELECT="">

</SELECT>

</body>
</html>

//akj
Avatar billede eagleeye Praktikant
09. juli 2002 - 08:54 #2
Skal siden loades igen eller må den ikke loades igern??

Hvis dem må loades kan du lave det med ASP
Hvis den ikke må loades når man vælger ny kategori skal det laves i javascript.

Hvad ønsker du at få vist fra tabellen billede ??

Ønsker du at alle billeder i den valgte kategori bliver vist ??
En ny pull-down-menu???
Eller noget helt andet?
Avatar billede starf Nybegynder
09. juli 2002 - 12:27 #3
1) den må gerne loades igen det er lige meget

2) den skal vise serie, into_txt og date

3) det skal vises bare i en lang liste sorteret efter dato
Avatar billede dk_akj Nybegynder
09. juli 2002 - 16:19 #4
Så er det letteste at loade siden igen.

' find en evt kategori ( den er der jo ikke når siden loades første gang)
kat =  request.form("kat")
if kat <> "" then
sql = select * from billede where kategori = '" &  kat &"'"
set objrs = conn.execute (sql)


response.write "<SELECT NAME="billeder "SELECT"">"

Do Until objRS.EOF

    ' her udskriver du data til listboxsen med billeder
    objRS.MoveNext
Loop

response.write "</SELECT>"
end if


på onchange event af kategori boxen kan du submitte med javascript
document.form.submit();

//akj
Avatar billede eagleeye Praktikant
09. juli 2002 - 17:09 #5
Ud fra det du har skrevet kunne det laves sådan her, du kan så flytte rundt i koden som du selv ønsker og tilrette til hvordan det skal udskrives osv, men bare spørg til koden, denne loader også siden igen.:


<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%       
dim objConn, objRS
set objConn = server.CreateObject("ADODB.Connection")
set objRS = Server.CreateObject("ADODB.Recordset")
'objConn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database/database.mdb")
objConn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db7.mdb")
objConn.Open

'Hent og se om der er valgt en kategori hvis ikke sæt til 0..
valgt_kategori = request.form("KAT_SELECT")
if valgt_kategori = "" then
  valgt_kategori = 0
end if

'Dette kode laver listen ud fra den valgte kategori
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  'Hvis kategori i billeder er defineret som tekst skal der ' omkring og så skal der i
  'pull-down menuen være navn i VALUE og ikke id1.
  strSQL = "SELECT * FROM billeder WHERE kategori = " & valgt_kategori & " ORDER BY [date] DESC"
  set objRS = objConn.Execute (strSQL)
 
  Response.Write "<table>"
  Response.Write "<tr><td>serie</td><td>Info</td><td>Dato</td></tr>"
  do while not objRS.EOF
    Response.Write "<tr>"
    Response.Write "<td>" & objRS("serie") & "</td>"
    Response.Write "<td>" & objRS("info_txt") & "</td>"
    Response.Write "<td>" & objRS("date") & "</td>"
    Response.Write "</tr>"
    objRS.Movenext
  loop
  Response.Write "</table>"
end if
%>

<br>
<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="POST" name="f1">
<%
Set objRS = objConn.Execute("SELECT * FROM kategori")
If Not objRS.EOF Then
  response.write "<SELECT NAME=""KAT_SELECT"" onchange=""document.f1.submit()"">" & vbCrLf
  response.write "<OPTION VALUE=""0"">..vælg..</OPTION>"
  Do Until objRS.EOF
    Response.Write "<OPTION VALUE=""" & objRS("id1") & """"
    'Set den kategori som er valgt SELECED.
    if CInt(valgt_kategori) = CInt(objRS("id1")) then
      Response.Write " SELECTED "
    end if   
    Response.Write ">" & objRS("navn") & "</OPTION>" & vbCrLf
    objRS.MoveNext
  Loop
  response.write "</SELECT>" & vbCrLf
End If
%>
</form>

<%
If objRS.State = 1 Then objRS.Close
Set objRS = Nothing

If objConn.State = 1 Then objConn.Close
Set objConn = Nothing
%>
</BODY>
</HTML>
Avatar billede starf Nybegynder
09. juli 2002 - 22:58 #6
eagleeye > efter at jeg har tilpasset koden med min database så før jeg følgende fejl..

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/novatech/kategori_list.asp, line 25


Linie 25 er:

  set objRS = objConn.Execute (strSQL)
Avatar billede eagleeye Praktikant
09. juli 2002 - 23:03 #7
kolonnen Kategori i billeder er den defineret som tekst eller tal?
Avatar billede starf Nybegynder
09. juli 2002 - 23:04 #8
'Hvis kategori i billeder er defineret som tekst skal der ' omkring og så skal der i
  'pull-down menuen være navn i VALUE og ikke id1.

Hvad er der du mener der skal ' omkring ???? i koden... da det er tekst den skal sortere på
Avatar billede eagleeye Praktikant
09. juli 2002 - 23:07 #9
Det jeg mener er hvis kategori er definet som tekst i billeder tabellen skal du lave SQL'en sådan her:

strSQL = "SELECT * FROM billeder WHERE kategori = '" & valgt_kategori & "' ORDER BY [date] DESC"
Avatar billede eagleeye Praktikant
09. juli 2002 - 23:08 #10
Men hvilken kolonne bestemmer hvilken kategori et billed høre til?
Avatar billede eagleeye Praktikant
09. juli 2002 - 23:09 #11
Ligeledes skal du så rette denne linie:
  Response.Write "<OPTION VALUE=""" & objRS("id1") & """"

Til:
  Response.Write "<OPTION VALUE=""" & objRS("navn") & """"

For at det er navnet på kolonnen som den skal finde.
Avatar billede starf Nybegynder
09. juli 2002 - 23:14 #12
det virker sådan her.

Kategori tabellen har en Admin del hvor man kan slette og tilføje kategori titler....

når man har gjort det kan man gå over i Billede admin delen hvor man kan tildele billeder kategoriér så henter den så alle de kategorier der er at vælge imellem fra kategori tabellen og flytter den du vælger med over i billede tabellen
Avatar billede starf Nybegynder
09. juli 2002 - 23:19 #13
nu kommer følgedene fejl
http://www.evilsun.dk/esv2/kategori_list.asp

er det ikke muligt at få den til at vise alle post i en lang række uden en mere pull down menu ??
Avatar billede eagleeye Praktikant
09. juli 2002 - 23:19 #14
Ok.. Men i billede tabellen er det ID på kategorien eller er det navnet på kategorien som gemmes i billeder tabellen?
Avatar billede starf Nybegynder
09. juli 2002 - 23:24 #15
i billede tabellen hedder colonen kategori

i kategori tabellen hedder colonen navn
Avatar billede eagleeye Praktikant
09. juli 2002 - 23:25 #16
Prøv at rette denne linie:

if CInt(valgt_kategori) = CInt(objRS("id1")) then

Til:

if valgt_kategori = objRS("navn") then
Avatar billede eagleeye Praktikant
09. juli 2002 - 23:27 #17
Jeg er ikke helt med på hvad du mener med denne:
er det ikke muligt at få den til at vise alle post i en lang række uden en mere pull down menu ??
Avatar billede starf Nybegynder
09. juli 2002 - 23:30 #18
takker en million gange det virker nu
Avatar billede starf Nybegynder
09. juli 2002 - 23:31 #19
det var bare fordi pga en fejl så viste den fejlen i sådan en pull down.. menu så trode jeg den bare skrev resuslterne der i og så skulle man vælge der for at se det.. men det virker perfekt nu.. takker
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