webForumDet fria alternativet

funktions hjälp

ASP

14 svar · 706 visningar · startad av Biasse

Medlem sedan aug. 2003480 inlägg
Frågan#1

Hejsan i sommaren. Sitter här med en medlems samling som bygger på att man får en nivå vid inloggningen.

medlem får nivå 1 & admin får nivå 2.

Det jag funderar på är om det är möjligt att skriva in en funktion som omvandlar 1 till medlem samt 2 till admin?

Medlem sedan juni 200032 967 inlägg
#2
function getGroupText(iLevel)
     select iLevel
          case 1 : getGroupText = "medlem"
          case 2 : getGroupText = "admin"
     end select
end function

. . . .

Response.Write getGroupText(1)
Medlem sedan aug. 2003480 inlägg
#3

Skriver ut det så här nu: <%=RecSet("niva")%>

Infogar funktionen .. Ska det fungera så här då? <%=Response.Write getGroupText(1)%>

Medlem sedan nov. 20014 054 inlägg
#4

<% Response.Write getGroupText(RecSet("niva"))%> eller <%=getGroupText(RecSet("niva"))%>

Medlem sedan aug. 2003480 inlägg
#5

Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03FD)
'Case' förväntas.
/admin/admin.asp, line 9, column 7
select iLevel

Medlem sedan aug. 2003480 inlägg
#6

<%
function getGroupText(iLevel)
select iLevel <-------------------------- Line 9
case 1 : getGroupText = "medlem"
case 2 : getGroupText = "admin"
end select
end function
%>

Medlem sedan nov. 20014 054 inlägg
#7

Tror @nders glömde.. lite

function getGroupText(iLevel)
     Select Case(iLevel)
          Case 1
                 getGroupText = "medlem"
          Case 2
                 getGroupText = "admin"
     End Select
end function
Medlem sedan aug. 2003480 inlägg
#8

Det funkade kanon :)

Kan man även göra detta åt andra hållet?

Alltså att man skriver tex admin så skrivs 2 in i databasen

Medlem sedan nov. 20014 054 inlägg
#9
function getGroupLevel(strLevel)
     Select Case(lcase(strLevel))
          Case "medlem"
                 getGroupLevel = 1
          Case "admin"
                 getGroupLevel = 2
          Case Else
                  getGroupLevel = 1
     End Select
end function

Case Else här är om man anger något annat än medlem eller admin, ex. om man anger medlemen, så kastar vi ut ett defaultvärde, i detta fall 1. :)

Medlem sedan juni 200032 967 inlägg
#10

Jag missade ett litet ord ja. Det är klart man kan göra åt andra hållet också, som fredde visar. Det är bara att ändra lite i koden, det borde du kunnat lösa själv.

Medlem sedan aug. 2003480 inlägg
#11

Hur ska då input se ut?

<input type="text" name="niva">

Medlem sedan aug. 2003480 inlägg
#12

Ja jag lär mig hela tiden och visst ska jag knåpa lite själv :)

Medlem sedan aug. 2003480 inlägg
#13

Nej jag går bet på det.

En dum fråga har jag. Har ju min <input type="text" name="niva"> i admin.asp.

Sen RecSet("niva") = Request.Form("niva") i add.asp.

Måste funktionen finnas på båda sidorna?

Medlem sedan nov. 20014 054 inlägg
#14

Om du skall spara nivån, och nivån anges som ex strängen: medlem alt. admin

 RecSet("niva") = getGroupLevel(Request.form("niva"))

Dock ännu bättre skulle vara om man gjorde en select-meny, istället för en enkel textruta:

<select name="niva">
 <option value="">-- Välj medlemstyp --</option>
 <option value="1">Medlem</option>
 <option value="2">Administratör</option>
</select>

add.asp

RecSet("niva") = Request.Form("niva")

Dock får man se till att niva är tvingande (dvs. man måste välja medlemstyp, annars kan man inte posta formuläret.)

Då behöver du bara använda dig av getGrouptext(iLevel), och förmodligen aldrig av motsatta funktionen getGrouplevel(strLevel).

bara en tanke..

Medlem sedan aug. 2003480 inlägg
#15

Ja select-meny var helt klart modellen. Tackar :)

248 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)