Avatar billede unknown_someone Juniormester
29. september 2003 - 10:46 Der er 16 kommentarer og
2 løsninger

select bestemt værdi i dropdown

Jeg har en dropdown med følgende values;

1 [test]
2 [test2]
5 [test5]
34 [test34]
68 [tester]

etc...

så har jeg en værdi fra en ASP-funktion som fx kan give mig tallet 34 og så vil jeg gerne have selected (altså forudvalgt) det felt i min dropdown hvor value er "34 [test34]"

Men da jeg ikke ved hvad der står i den firkantede parentes kan jeg ikke bare benytte

document.data.mitfelt.value = '34';

så hvad gør jeg så for at få den selected???
Avatar billede lklingenberg Nybegynder
29. september 2003 - 10:55 #1
et opklarende spm: er alle options på formen value="tal [tekst]", fx <option value="43 [test34]">noget tekst</option>
Avatar billede unknown_someone Juniormester
29. september 2003 - 10:58 #2
ja
Avatar billede lklingenberg Nybegynder
29. september 2003 - 10:59 #3
så har du muligheden for at benytte tallet fra din asp funktion. Giv mit et par minutter...
Avatar billede ocp Nybegynder
29. september 2003 - 11:00 #4
Mon ikke dette kan gøre det?

<script language=javascript>
  var nValue = 34;
  var opts = document.data.mitfelt.options;

  for( var t = 0; t<opts.length; t++)
  {
    if( parseInt(opts[t]) == nValue )
    {
      opts[t].selected = true;
      break;
    };
  };

</script>
Avatar billede lklingenberg Nybegynder
29. september 2003 - 11:01 #5
hvordan genereres <select> listen? et databasekald?
Avatar billede unknown_someone Juniormester
29. september 2003 - 11:03 #6
ja - listen genereres ud fra en database... men den funktion der skal sætte værdien er en global funktion der kører på mange sider og som først kører ved onload
Avatar billede ocp Nybegynder
29. september 2003 - 11:08 #7
Funktionen kører client-side og "34" skal naturligvis erstattes med den værdi du henter i db

<%=rs("value")%>
Avatar billede lklingenberg Nybegynder
29. september 2003 - 11:13 #8
<%
Dim strTest
Dim strValue
strTest = objRS("value").Value
strValue = Left(strTest, InStrRev(strTest, "[")-2)
       
Response.Write "<select name=""selName"" size=1>" & vbCrLf
objRS.MoveFirst
Do Until objRS.EOF
  Response.Write vbTab & "<option "
  If strValue = objRS("value") Then Response.Write "selected "
  Response.Write "value=""" & objRS("value").Value & """>" & objRS("value").Value & "</option>" & vbCrLf
  objRS.MoveNext
Loop
Response.Write "</select>" & vbCrLf
%>
Avatar billede lklingenberg Nybegynder
29. september 2003 - 11:14 #9
denne funktion kører serverside i modsætningen til ocp's model - jeg tænkte at du alligevel kunne bruge dit databaseopkald til at finde den <option> der skulle vælges.
Avatar billede unknown_someone Juniormester
29. september 2003 - 11:22 #10
jeg er nødt til at bruge det som en klient-ting da funktionen skal køre ret globalt - men jeg har nu fået et andet problem i forbindelse med ocp's funktion;

Er det muligt at tjecke om et "mitfelt" er en dropdown før jeg gør noget select?
Avatar billede lklingenberg Nybegynder
29. september 2003 - 11:26 #11
Øh, der er noget jeg ikke forstår. Du skriver at værdien findes vha. en asp-funktion, men at den først kører ved onload... Asp er serversidescripting og bliver spyttet ud inden siden når klienten. Når først siden rammer klientet er det slut med serverside scripting med mindre siden reloades. Kan din globale funktion ikke køre serverside og derved blive spyttet inden side rammer klientet?
Avatar billede ocp Nybegynder
29. september 2003 - 11:48 #12
if( document.data.mitfelt.tagName.toUpperCase() == "SELECT" )
Avatar billede unknown_someone Juniormester
29. september 2003 - 12:01 #13
det lyder måske også underligt - men det der laves består af utrolig mange sider med en masse specielle funktioner og opsætninger. I toppen af hver side kører så en inkluderet side der indeholder én funktion der (såfremt der er nogle bestemte værdier) kan indsætte værdier i mine formfelter på alle sider

Det betyder at jeg ikke skal lave det selected-halløj i mit loop på samtlige mine formfelter
Avatar billede unknown_someone Juniormester
29. september 2003 - 12:11 #14
perfekt ocp - dog brugte jeg

if (document.data.<%=values("column_name")%>.options){

til at tjecke for felttypen - og så manglede du en .value i den inderste if-sætning

takker!
Avatar billede lklingenberg Nybegynder
29. september 2003 - 12:17 #15
hov, jeg skal da vist ikke have point for det her... Brugte du overhovedet noget af det jeg foreslog?
Avatar billede unknown_someone Juniormester
29. september 2003 - 12:18 #16
det var nu med vilje - som tak for forsøget :)
Avatar billede ocp Nybegynder
29. september 2003 - 12:22 #17
Tak for pts.
Avatar billede lklingenberg Nybegynder
29. september 2003 - 12:24 #18
Jamen, det var da moderligt pænt af dig, men med at al respekt for det, så er det ikke helt sådan pointsystemet er tiltænkt - der skal gives point til dem der løser et konkret problem og ikke for indsats per se.

-> ocp:
Du kan hente de sidste 10 points her: http://www.eksperten.dk/spm/407256
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