webForumDet fria alternativet
Logga in / Bli medlem

for each

ASP

13 svar · 281 visningar · startad av icaaq

Medlem sedan okt. 20005 273 inlägg
Trådstart#1

jag har följande:

For Each objItem in Request.Form
	[b]If Request.Form(objitem) <> "0" Then[/b]
		arr = Split(Request.Form(objitem),",")
		varID = arr(0)
		varFonster = arr(1)
		varKlass = arr(2)
		varGrupp = arr(3)
srtSql = "INSERT INTO Rullning(ID, "& varFonster &") VALUES ("& varID &", '" & varKlass & "," & varGrupp & "')"
con.execute(strSql)
End If
Next

Microsoft VBScript runtime error '800a01a8'

Object required: 'Request'

/Test/grej.asp, line 18

kan jag lösa det på nått ivs

Medlem sedan dec. 19998 577 inlägg
#2

Såhär kanske...

If Request.Form(objItem) <> "0" Then

Du döpte den ju till objItem

Medlem sedan okt. 20005 273 inlägg
#3

jag får det inte rriktigt att funka som jag vill...
nu blir det

Microsoft VBScript runtime error '800a0009'

Subscript out of range: '[number: 1]'

/Test/grej.asp, line 20

det som kommer med requesten är:
value="1, VU, P-86, 1"

Medlem sedan dec. 200012 464 inlägg
#4

Jag förstår inte varför du gör for each när indata ser ut så? Borde det inte gå att göra split direkt istället och kolla om första värdet är <> 0 och i så fall göra insert?

Nu så gör du split på strängen 1 och får då ett element i din array.

Medlem sedan okt. 20005 273 inlägg
#5

Vad menar du ....
som jag har det nu så har jag en massa values från en sida....kolla själva..

om dem inte valt nåt så får den requesten value "0"

och om det är value "0" så vill jag inte lägga in den

har du nått annat att föreslå??

Medlem sedan dec. 200012 464 inlägg
#6

Jag kollade på sidan, så nu förstår jag hur det ser ut. Men det fanns ju ett hidden field med och det kanske är det som strular. Du kanske kan lägga en koll efter din split att du fick 4 värden.
dvs

For Each objItem in Request.Form
If Request.Form(objitem) <> "0" Then
arr = Split(Request.Form(objitem),",")
if  Ubound(arr) = 3 then
varID = arr(0)
varFonster = arr(1)
varKlass = arr(2)
varGrupp = arr(3)
srtSql = "INSERT INTO Rullning(ID, "& varFonster &") VALUES ("& varID &", '" & varKlass & "," & varGrupp & "')"
con.execute(strSql)
End If
End If
Next
Medlem sedan okt. 20005 273 inlägg
#7

ok...inga felmess längre men... det händer inget :(

If Request.Form("regga") = "reg" Then
Set con = Server.CreateObject("ADODB.Connection")
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("../data/bustercup.mdb")
con.open
strSqlDel = "DELETE FROM Rullning"
con.execute(strSqlDel)

 For Each objItem in Request.Form
 If Request.Form(objitem) <> "0" Then
 arr = Split(Request.Form(objitem),",")
 if Ubound(arr) = 3 then
 varID = arr(0)
 varFonster = arr(1)
 varKlass = arr(2)
 varGrupp = arr(3)
 srtSql = "INSERT INTO Rullning(ID, "& varFonster &") VALUES("& varID &", '" & varKlass & "," & varGrupp &"')"
 Response.Write strSql
 con.execute(strSql)
 End If
 End If
 Next

Else

Response.write ger inget
:q :q :q ;)

Medlem sedan okt. 20005 273 inlägg
#8

nu ser jag srtSql istället för strSql

Medlem sedan okt. 20005 273 inlägg
#9

vill ändå inte gå .... :(
det vill inte komma in nåt i db.

Medlem sedan dec. 19998 577 inlägg
#10

Vad får du när du skriver ut SQL-strängen?

Medlem sedan okt. 20005 273 inlägg
#11

inget... :(

Medlem sedan dec. 200012 464 inlägg
#12

Hmm, några av dina drop down listor hade ju också samma namn. Då kommer väl alla värden i samma item, dvs det blir

1, VU, P-86, 1,0,3, VU, P-84, 4

eller något sådant i objItem. Så om man döper dom till olika namn?!

Medlem sedan okt. 20005 273 inlägg
#13

Fan det funkar ju inte ändå......asso det funkar med denna for each men jag kan ju inte köra flera inserts på samma id ....det blir å tänka lite över natten nån som har en ide :q

Medlem sedan okt. 20005 273 inlägg
#14

Löste det så här:

 For Each objItem in Request.Form
 If Request.Form(objitem) <> "0" Then
 arr = Split(Request.Form(objitem),",")
 if Ubound(arr) = 3 then
 varID = arr(0)
 varFonster = arr(1)
 varKlass = arr(2)
 varGrupp = arr(3)
 strSql = "SELECT ID FROM Rullning WHERE ID = "& varID&""
 Set rs = con.execute(strSql)
 If rs.EOF Then
 strIns = "INSERT INTO Rullning(ID, "& varFonster &") VALUES("& varID &",'"&varKlass&","&varGrupp&"')"
 Response.Write strIns
 con.execute(strIns)
 Else
 strUpd = "UPDATE Rullning SET "&varFonster&" = '"& varKlass&","&varGrupp&"' WHERE ID = "&varID&""
 Response.Write strUpd
 con.execute(strUpd)
 End If
 End If
 End If
 Next

tack allihopa

290 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
154 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)