Checkboxar - Rent generellt.
Jag har inte läst all kod i denna tråden så jag kan inte svara specifikt. Men checkboxar använder alla och jag har utvecklat det där lite längre för egen del.
[users]
intID
strName
bolAdmin
SQL = "SELECT intID, strName, bolAdmin FROM users;"
set mySQL = Conn.Execute(SQL)
IF NOT mySQL.EOF THEN myRow = mySQL.GetRows()
***
Ok, är du med på ovanstående!?
Du har en Array:
0,0 = 23 (intID)
1,0 = "Eclipse" (strName)
2,0 = FALSE (bolAdmin)
***
Det smarta med denna koden är att du använder samma kod oavsett om värdet är TRUE eller FALSE.
' ## VIEW
response.write "<A HREF=""confirm.asp?view_" & LCase(myRow(1,j)) & "=" & myRow(0,j)
response.write """><IMG SRC=""/admin/pics/icons/" & LCase(myRow(1,j)) _
& ".gif"" WIDTH=""20"" HEIGHT=""16"" BORDER=""0"" TITLE=""Publish""></A>"
Jag vet inte om du förstår denna koden.
Den växlar:
confirm.asp?view_true&ID=23 ... true.gif </A>
confirm.asp?view_false&ID=23 ... false.gif </A>
I mappen "/admin/pics/icons/" finns ikonerna true.gif och fgalse.gif.
***
Sen har jag varit ännu mer slö och tänkte, kan man inte använda samma kod ännu mer? Jag menar, om man vet det ena så är det automatiskt det andra?
Från filen confirm.asp:
' ## VIEW - 2003-03-27
myVar = request("bolView")
IF myVar <> "" THEN
funcTrueFalse(myVar)
returnPath = "index.asp"
IF request("page") <> "" THEN returnPath = returnPath & "?page=" & request("page")
END IF
***
Funktionen till det där:
Från filen open.asp (inkluderad på varje sida)
' ## TRUE/FALSE
FUNCTION funcTrueFalse(myVar)
DIM strQS, varQS
DIM strFieldName, strFieldValue
' ## COLLECT VALUES
strQS = Request.Querystring
varQS = split(strQS, "=")
if not ubound(varQS) = -1 then
strFieldName = replace(varQS(0), "sub_", "")
strQS = varQS(1)
varQS = split(strQS, "&")
strFieldValue = varQS(0)
END IF
' ## UPDATE TABLE
IF Left(Request.Querystring, 4) = "sub_" THEN
SQL = "UPDATE [" & mySubTable & "] SET " & strFieldName & " = Iif(" & strFieldName &" = FALSE, TRUE, FALSE) WHERE intID = " & strFieldValue & ";"
ELSE
SQL = "UPDATE [" & myTable & "] SET " & strFieldName & " = Iif(" & strFieldName &" = FALSE, TRUE, FALSE) WHERE intID = " & strFieldValue & ";"
END IF
Conn.Execute(SQL)
END FUNCTION
Du kanske fattar allt det där och då är du en klippa! Själv är jag nöjd så länge allt fungerar...
Lycka till! :-)