Avatar billede karsten_larsen Praktikant
16. juli 2003 - 10:40 Der er 10 kommentarer og
2 løsninger

funktion med if i et form felt

Jeg prøver at forkorte mit script - gøre det lidt mere smart.

Jeg har en option funktion, med 21 forskellige txt valg og fortløbende values. Denne funktion fungere perfekt men den skal også kunne huske det valgte, når formen er sendt.

I stedet for at gøre det sådan her hele vejen, må det kunne gøres mere smart - MEN hvordan?

IF under = 1 then
        Response.Write("<option value='1' selected>Cerebrum</option>")
    else
        Response.Write("<option value='1' >Cerebrum</option>")
    end if

og så forsætter det med 21 if sætninger med ny anden txt og en højere værdi i value.

?:-) karsten_larsen
Avatar billede dk_akj Nybegynder
16. juli 2003 - 10:45 #1
Hvad med at lave et array med texter ??

laver lige en test.

//akj
Avatar billede cesil Nybegynder
16. juli 2003 - 10:46 #2
prøv noget a'la

for x=1 to 21
    if x = 1 then text = "Cerebrum"
    if x = 2 then text = "Nogetandet"
    IF x = 1 then
        Response.Write("<option value=" & x & " selected>" & text & "</option>")
    else
        Response.Write("<option value=" & x & " >" & text & "</option>")
    end if
    IF x = 2 then
        Response.Write("<option value=" & x & " selected>" & text & "</option>")
    else
        Response.Write("<option value=" & x & " >" & text & "</option>")
    end if
next
Avatar billede cesil Nybegynder
16. juli 2003 - 10:48 #3
øh det var den her der skulle ha været postet

for x=1 to 21
    if x = 1 then text = "Cerebrum"
    if x = 2 then text = "Nogetandet"
    Response.Write("<option value=" & x & " selected>" & text & "</option>")
next
Avatar billede karsten_larsen Praktikant
16. juli 2003 - 10:48 #4
-> cesil
Det gør vist ikke koden mindre, så vidt jeg kan se.
:-) k_l
Avatar billede karsten_larsen Praktikant
16. juli 2003 - 10:50 #5
-> cesil
sendte vist på samme tid - ser lige på det
:-) k_l
Avatar billede cesil Nybegynder
16. juli 2003 - 10:51 #6
:-)
Beklager, du fik den forkerte version
Avatar billede squashguy Nybegynder
16. juli 2003 - 10:53 #7
som dk_akj skriver: lav en array

<%
atext = Array(_
    "første",_
    "andet",_
    "tredie"_
)
index = 0
%>
<option value="<%=index%>"><%=atext(index)%></option>
Avatar billede mickeyboy Nybegynder
16. juli 2003 - 10:53 #8
Vil foreslå du gemmer alle teksterne i et array
arraynavn(1) = 'Cerebrum'
...
arraynavn(21) = 'Det sidste'

så lave et gennemløb

for i = 1 to 21
  if i = under    // Teksten skal være default (SELECTED)
    Response.Write("<OPTION VALUE=" & i & " SELECTED>" & arraynavn(i) & "<OPTION>"
  else            // Teksten skal ikke være default
    Response.Write("<OPTION VALUE=" & i & ">" & arraynavn(i) & "<OPTION>"
  end if
next
Avatar billede mickeyboy Nybegynder
16. juli 2003 - 10:54 #9
Ups... det skulle have været et svar :-)

Vil foreslå du gemmer alle teksterne i et array
arraynavn(1) = 'Cerebrum'
...
arraynavn(21) = 'Det sidste'

så lave et gennemløb

for i = 1 to 21
  if i = under    // Teksten skal være default (SELECTED)
    Response.Write("<OPTION VALUE=" & i & " SELECTED>" & arraynavn(i) & "<OPTION>"
  else            // Teksten skal ikke være default
    Response.Write("<OPTION VALUE=" & i & ">" & arraynavn(i) & "<OPTION>"
  end if
next
Avatar billede dk_akj Nybegynder
16. juli 2003 - 11:00 #10
Nåh, telefonen ringede lige :-)
Her er mit bud.


//akj

<form action="default.asp" method="post" name="form1" id="form1">
<select name="sel">

<%
ret = request.form("sel")

dim myarr()

redim myarr(5)

myarr(1) = "test1"
myarr(2) = "test2"
myarr(3) = "test3"
myarr(4) = "test4"
myarr(5) = "test5"

For i = 1 to ubound(myarr)
if i = cint(ret) then
    sel = " selected"
else
    sel = ""
end if

response.write "<option value='" & i &     "' " & sel  & " >" & myarr(i) & "</option>" & vbcrlf
next
%>
</select>
<input type=submit>
</form>
Avatar billede karsten_larsen Praktikant
16. juli 2003 - 11:05 #11
Fedt med så meget hjælp. Er ved at gå lidt kold - så jeg kigger lidt på det i eftermiddag.

:-)) karsten_larsen
Avatar billede karsten_larsen Praktikant
16. juli 2003 - 21:29 #12
Så lykkedes det.

Funktion kom til at se sådan ud - for dem som kan bruge noget sådan i generel form

<% Function Objekt (nummer, vaerdi)

    Omraader = "Vælg, emne1, emne2, emne3, Andet"
    arrOmraader = Split(Omraader,",")
   
    Response.Write("<select class='input' name='objekt_navn" & nummer &"'>")
    for d = 0 to ubound(arrOmraader)
          if d = CInt(vaerdi) then 
            Response.Write("<option value='" & d & "' selected>" & arrOmraader(d) & "</option>")
          else           
            Response.Write("<option value='" & d & "'>" & arrOmraader(d) & "</option>")
          end if
    next
    Response.Write("</select>")
    end function
%>


Pointgivelse: jeg brugte lidt fra begge derfor denne fordeling
dk_akj 40p.
mickeyboy 20p.

:-)) k_l
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