Prova For I = 0 To Request.form("Userid").Count
eller kanske:
For I = 1 To Request.form("Userid").Count -1
Rena chansingar :)
7 svar · 244 visningar · startad av doggelito
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.
Prova For I = 0 To Request.form("Userid").Count
eller kanske:
For I = 1 To Request.form("Userid").Count -1
Rena chansingar :)
Nope! där sitter inte problemet.
Formulär börjar räkna från 1 inte 0
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?
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?
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
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
Så fick det bli :)