Avatar billede michaelfp Nybegynder
24. august 2004 - 21:04 Der er 10 kommentarer og
1 løsning

dropdown/combobox - skal vise to felter, men viser kun ét!!

Hej eksperter,

dette er min kode, som henter data fra db til dropdown:
---
  <%
  Set Cbors = Server.CreateObject("ADODB.Recordset")
  Cbors.Open "safdelinger", conn, adOpenForwardOnly, adLockReadOnly, adCmdTableDirect
  Response.Write "<select name=dropdown size=1>"
  'danner en tom
  Response.write "<option value=" & " " & ">" & " " & "</option>"

  Do While Not CboRs.EOF
    Response.Write "<option value='" & CboRs("Afdelingsid") & "'>" & CboRs("Navn") & "</option>"
    CboRs.MoveNext
  Loop
 
  Response.Write "</select>"
  CboRs.Close
  Set CboRs = Nothing
  %>
--

Hvorfor viser den ikke begge felter fra tabellen??
Avatar billede eagleeye Praktikant
24. august 2004 - 21:08 #1
Hvordan mener du?  Har du to poster/tækker og den viser en eller?
Eller tænker du på du har to kolonner, dne en kolonne bruge i value og kan ikke direkte ses, den anden bruges som navn og kan ses.
Avatar billede michaelfp Nybegynder
24. august 2004 - 21:19 #2
Hej eagleeye,
Tabellen indeholder en del poster. Dropdown virker også men:
Problemet er, at jeg i koden (så vidt jeg selv kan se) beder om, at hver række i listen skal indeholde to felter "afdelingsid" og "navn" - men listen viser kun feltet "navn"!!

Ønske:    ÅRH  Århus
          KBH  København

Den viser:    Århus
              København


Forstår du problemet nu?

Forst
Avatar billede eagleeye Praktikant
24. august 2004 - 21:25 #3
Som koden er ligges "Afdelingsid" ind i value på option. Så når man med Request.From("dropdown") får eksvis ÅRH hvis man har valgt Århus. Den eneste kolonne som vises som tekst er "navn".

Vil du havde begge så ret denne linje:

Response.Write "<option value='" & CboRs("Afdelingsid") & "'>" & CboRs("Navn") & "</option>"

Til denne:

Response.Write "<option value='" & CboRs("Afdelingsid") & "'>" & CboRs("Afdelingsid")& " " & CboRs("Navn") & "</option>"
Avatar billede michaelfp Nybegynder
24. august 2004 - 21:36 #4
Lad mig lige se om jeg forstår dig rigtig!
Som min kode er nu - betyder det så, at hvis man i dropdown vælger Århus, så vil
request.from("dropdown") returnere ÅRH ? men hvis koden ændres, som du anfører så vil request.from("dropdown") indeholde ÅRH ÅRHUS ??

Jeg er helt på hjemmebane med VB og er vant til at kunne referere til en bestemt
kolonne i en combobox. I ASP/HTML (som jeg er gået igang med at lære) skal jeg have fundet udaf, hvordan jeg kan referere til det afdelingsid, som vælges i dropdown.
Avatar billede eagleeye Praktikant
24. august 2004 - 21:40 #5
Det du får i request.from("dropdown") er det som er lagt ind i value i <option> tagen. Det jeg har ændre vil ikke ændre på du får ÅRH men det ændre på du gerne skulle få vist "ÅRH  Århus" i drop-down menuen.

Hvis du kigge i HTML koden for siden vil det se sådan her ud:
<option value='ÅRH'>ÅRH Århus</option>

Det som er imellem de to <option> og </option> er dte om bliver vist i drop-down menuen. Det står lige efter values= er det som du får overført til Request.Form.
Avatar billede michaelfp Nybegynder
24. august 2004 - 21:46 #6
Tak for hjælpen - nu forstår jeg sammenhængen.
Må jeg give dig en udfordring mere?
Hvordan "mærker" man, hvis der vælges en værdi i en dropdown?
I VB ville jeg referere til Onchange property - gider du?

Under alle omstændigheder - lav et svar så du kan få points.
Avatar billede eagleeye Praktikant
24. august 2004 - 21:50 #7
Jeg er ikke helt sikker på hvad du mener med "mærker"
I browseren kan også lave en Onchange i <select> tagen som aktivers når man vægler en værdi er det sådan du mener?  Så kan man lave kalde en funktion som er skrevet i javascript eller VB.

Response.Write "<select name=dropdown size=1 onchange=""nyvalgt();"">"
Avatar billede michaelfp Nybegynder
24. august 2004 - 22:13 #8
Du er jo en ørn til dette her og jeg er jo næste på vej til at misbruge dig!

-> Jeg har nu lavet følgende funktion:
  Function UpdatefromCBO(Fvar)
    Fvar = request.from("dropdown")
  End function

-> Den fulde kode for afsnittet med dropdown ser således ud:
<tr>
  <td>Afdeling:</td>
  <td><INPUT maxLength=5 size=5 name=afdeling value="<%=afdeling%>">&nbsp;&nbsp;<INPUT maxLength=20 size=20 name=afdCbo value="<%=afdCbo%>">&nbsp;
  <%
  Set Cbors = Server.CreateObject("ADODB.Recordset")
  Cbors.Open "safdelinger", conn, adOpenForwardOnly, adLockReadOnly, adCmdTableDirect

  Response.Write "<select name=dropdown size=1 onchange=""UpdatefromCBO(Afdeling);"">"
  Response.write "<option value=" & " " & ">" & " " & "</option>"
  Do While Not CboRs.EOF
    Response.Write "<option value='" & CboRs("Afdelingsid") & "'>" & CboRs("Navn") & "</option>"
    CboRs.MoveNext
  Loop
 
  Response.Write "</select>"
  CboRs.Close
  Set CboRs = Nothing
  %></td>
</tr>

-> Variablen "afdelingsid" skulle - hvis jeg har forstået dig rigtig - nu
blive tildelt ÅRH, hvis det vælges i dropdown. Det gør den ikke - eller
glemmer jeg noget kode for at opdatere felterne på skærmen?

Og:
Det er første gang idag jeg har stillet spørgsmål og jeg aner ikke hvordan jeg får givet dig point? - hvordan gør man?
Avatar billede eagleeye Praktikant
24. august 2004 - 22:34 #9
Sådan kan man ikke gøre det :)
Hvis du vil hvade den valgte værdi i en ASP variable skal man sende en form til en side.

<form method="post" action="modtagerside.asp">

.. form input her

<input type="submit" name="send" value="send">
</form>


Et hurtigt eksempel hvis man har denne form:
<form action="indsaet.asp" method="post">
<input type="text" name="Fornavn">
<input type="submit" value="Gem">
</form>

Når man trykke på "Gem" knappen sendes form data til siden indsaet.asp. På den side kan man så hente det om er skrevet i input feltet Fornavn med:
Fornavn= Request.Form("Fornavn")
Avatar billede michaelfp Nybegynder
24. august 2004 - 23:13 #10
Tak for hjælpen og dine mange gode tips. Hvordan får jeg givet dig dine points?
Avatar billede eagleeye Praktikant
24. august 2004 - 23:17 #11
Så skal du trykke på mit navn i den boks som indeholder navne på dem som har svaret, og så trykke på Accepter så skulle jeg gerne få dem :)
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