Avatar billede askeb Nybegynder
22. juli 2003 - 19:49 Der er 10 kommentarer og
1 løsning

Rullemenu med beskrivelse

Hejsan
Når man opretter et spm. her på Eksperten, og vælger en kategori kommer der en lille kategoribeskrivelse...hvordan får jeg det?
Jeg kan ikke Jscript, men jeg tror det er det jeg skal ha fat i...
Alle mine "kategorier" ligger i tabellen 'emne'...Dem hiver jeg ud, og laver en option til dem...
Jeg fandt et eksempel på dynamic-drive (http://www.dynamicdrive.com/dynamicindex1/combodescribe.htm) der brugte en array til det men jeg kan ikke få det til at virke når ASP'en kommer ind i det...her er min kode:

<select name="emner" id="emner">
<%
StrSQL = "SELECT * FROM emner"
Set rs = cnnConn.Execute(StrSQL)
               
response.Write "<option value="""" selected>----Emner----</option>"
do while not rs.eof
response.Write "<option value=""" & rs("emne") & """>" & rs("emne") & "</option>")
rs.movenext
loop
%>
</select>
***
Jeg går ud fra at vi skal ha fat i onChange funktionen?
Avatar billede fet321 Nybegynder
22. juli 2003 - 19:55 #1
Du skal bare bruge ASP'en til at udskrive det array, som du før har skrevet direkte i HTML.
Avatar billede askeb Nybegynder
22. juli 2003 - 20:02 #2
Ja, det har jeg fundet ud af, men hvordan?
Jeg kan godt lave arrayet...
Avatar billede netro Nybegynder
22. juli 2003 - 20:02 #3
Jeg kan ikke se, hvad problemet er, bortset fra du har en ) for meget efter </option>.

Vil du have den til at gøre noget specielt, når der vælges et punkt, siden du taler om onChange?
Avatar billede netro Nybegynder
22. juli 2003 - 20:07 #4
Jeg har aldrig oprettet et spørgsmål her - men jeg tjekker lige, hvordan det ser ud.
Avatar billede netro Nybegynder
22. juli 2003 - 20:23 #5
Nu tror jeg, jeg er med på, hvad du mener.

********************************************

<head>

<script language="javascript">

function skifttekst(tekst) {
if (document.getElementById) {
    document.getElementById("vartekst").innerHTML = tekst
  } else if (document.all) {
    document.all.vartekst.innerHTML = tekst
  } else if (document.layers) {
    document.vartekst.document.open();
    document.vartekst.document.write(tekst);
    document.vartekst.document.close();
  }
}

</script>

</head>
<body>

<select name="emner" id="emner" onChange="skifttekst(this.options[this.selectedIndex].value);">
<%
StrSQL = "SELECT * FROM emner"
Set rs = cnnConn.Execute(StrSQL)
               
response.Write "<option value="""" selected>----Emner----</option>"
do while not rs.eof
response.Write "<option value=""" & Emnebeskrivelse & """>" & rs("emne") & "</option>"
rs.movenext
loop
%>
</select>
<br><br>
<span id="vartekst" style="position:absolute;"></span>
Avatar billede askeb Nybegynder
22. juli 2003 - 20:24 #6
du kan jo prøve at kigge på linket - der er et eksempel...
Avatar billede askeb Nybegynder
22. juli 2003 - 20:28 #7
ok :) - bare et lille problem - valuen bliver brugt til at indsætte emnet i en database - dvs. det skal være emne og ikke Emnebeskrivelse...
Avatar billede netro Nybegynder
22. juli 2003 - 20:39 #8
Ja, det kan der jo være noget om.

Hvis du bruger eksemplet på DynamicDrive, kan du bare danne array'et med emnebeskrivelserne således:

***************************************************

//CUSTOMIZE TEXT DESCRIPTIONS FOR LINKS ABOVE
var textdisplay=new Array()
textdisplay[0]="Comprehensive JavaScript tutorials and over 400+ free scripts"
textdisplay[1]="Direct link to hundreds of free Java applets online!"

***************************************************

StrSQL = "SELECT * FROM emner"
Set rs = cnnConn.Execute(StrSQL)

Count = 0         
do while not rs.eof

DescArray = DescArray & "textdisplay[" & Count & "]=""" & rs("Emnebeskrivelse") & """" & vbCrlf
Count = Count + 1

rs.movenext
loop

Response.Write DescArray
Avatar billede askeb Nybegynder
22. juli 2003 - 22:01 #9
juhuu...det virker sq - her er koden:
*****************************
<form name="form" method="post" action="indsaetnyhed.asp"><br>
V&aelig;lg dit emne:<br>
<select name="emner" id="emner" onChange="displaydesc(document.form.emner.selectedIndex)">
               
StrSQL = "SELECT * FROM emner"
Set rs = cnnConn.Execute(StrSQL)
               
response.Write "<option value="""" selected>----Emner----</option>"
               
i = "1"
do while not rs.eof

response.Write "<option value=""" & rs("emne") & """>" & rs("emne") & "</option>"
DescArray = DescArray & "textdisplay[" & i & "]=""" & rs("Emnebeskrivelse") & """" & vbCrlf
i = i+1

rs.movenext
loop

%></select>

<script>
var textdisplay=new Array()
textdisplay[0]=""
<%=DescArray%>

function displaydesc(which){ //en funktion til at vise teksten
if (document.all)
descriptions.innerHTML=textdisplay[which]
else if (document.getElementById)
document.getElementById("descriptions").innerHTML=textdisplay[which]
}

displaydesc(document.form.emner.selectedIndex)

document.form.emner.options[0].selected=true

</script>
<br>
<span id="descriptions" align="left" style="font:italic 13px Arial">Vælg et emne...</span>
***********************************
Avatar billede askeb Nybegynder
22. juli 2003 - 22:17 #10
du må gerne lægge et svar ;)
Avatar billede netro Nybegynder
23. juli 2003 - 01:22 #11
Fint :)
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