webForumDet fria alternativet

Loopa formulär

ASPur ASP

7 svar · 244 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Frågan#1

Fundring:
Loopar ett postat formlär men hur styr man checkboxen (Responsible) om den inte är ifylld (då finns ju inte den i postningen)?

Sub Update_User()
Dim I, Userid, Fullname, Responsible
    For I = 1 To Request.form("Userid").Count
    Userid = Format_number(Request.Form("Userid")(I))
    Fullname = Format_empty(Request.Form("Username")(I))
    [b]Responsible = Format_bln(Request.Form("Responsible")(I))[/b]
        If Not Errors = 0 Then Exit Sub
        call executeSql("Update Usertbl Set Fullname = '" & Fullname & "', Responsible = " & Responsible & " "&_
        "Where Id = " & Userid & " ;")
    Next
End Sub

Errorkod:
Request object error 'ASP 0105 : 80004005'

Index out of range

/Admin/Users/_scriptfile.asp, line 62

An array index is out of range.

Medlem sedan feb. 20022 594 inlägg
#2

Prova For I = 0 To Request.form("Userid").Count

eller kanske:

For I = 1 To Request.form("Userid").Count -1

Rena chansingar :)

Medlem sedan juni 20003 076 inlägg
#3

Nope! där sitter inte problemet.
Formulär börjar räkna från 1 inte 0

Medlem sedan dec. 200012 464 inlägg
#4

Då har du inte lika många fält som heter responsible som du har fält som heter userid

Hur skapar du formuläret?

Medlem sedan juni 20003 076 inlägg
#5

jo det är lika många.
men alltså har jag fel nu:
checkar man inte i responsible så finns väl inte den i just den loopen men däremot om man checkar i, eller?

Medlem sedan juni 20003 076 inlägg
#6

Hmm, kan man inte kolla fältet på nått vis, typ:(fast fungerande)

Sub Update_User()
Dim I, Userid, Fullname, Responsible
    For I = 1 To Request.form("Userid").Count
    Userid = Format_number(Request.Form("Userid")(I))
    Fullname = Format_empty(Request.Form("Username")(I))

    If Not isempty(Request.Form("Responsible")(I)) Then
    Responsible = Format_bln(Request.Form("Responsible")(I))
    Else
    Responsible = 0
    End If

        If Not Errors = 0 Then Exit Sub
        call executeSql("Update Usertbl Set Fullname = '" & Fullname & "', Responsible = " & Responsible & " "&_
        "Where Id = " & Userid & " ;")
    Next
End Sub
Medlem sedan dec. 200012 464 inlägg
#7

Ja, en icke checkad checkbox kommer inte med.

Även om det går att se om det finns ett fält så blir det problem med korrespondensen mellan fälten. Du kan inte veta vilken checkbox som inte är ifylld. (Det går om dom har olika value men då måste du loopa igenom alla.)

Kan du döpa dom till

Responsible1
Responsible2
Responsible3

osv

och då kan du göra

If Request.Form("Responsible" & i ) <> "" Then
Medlem sedan juni 20003 076 inlägg
#8

Så fick det bli :)

142 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)