18. juli 2000 - 22:07Der er
13 kommentarer og 1 løsning
Dynamisk Request.form(rs("id")) HJÆLP
Jeg har problemer, for jeg skal lave en dynamisk Request.form(rs("id")) hvor den tjekker alle de id numre igennem som den henter fra en database, da siden med formen også er lavet dynamisk med felt navne der hedder idnummeret, og hvor der så er mulighed for at udfylde tjekbox, så bliver værdien ja, og så hvis folk har tjekke boxen af så skal den oprette et nyt felt i en database til folk. Og Den melder fejl i arrayet med det jeg har lavet her! :
Set rs = Server.CreateObject("ADODB.RecordSet") katnavne = "SELECT * FROM [tblkatnavne];" set rs = Conn.Execute(katnavne) If not rs.eof then Do While Not rs.EOF response.write rs("id") & "<Br>" x = rs("id") response.write Request.form(rs("id")) rs.MoveNext Loop end if
Der melder den denne fejl
An array index is out of range.
Dette er linje 77 response.write request.form(rs("id"))
Hvis nogen ved hvordan jeg skal rette det, eller har en smartere måde at lave det på så vil jeg blive vildt glad og ud over pointene så står der 2 1½ liter coca cola på spil :o) Mvh Thomas
Flipover jeg har prøvet at gøre det samme som du mener flipover, det kommer med den samme fejl :o( Så det hjælper ikke så meget.
Lthrane, det er alle jeg skal have derfra.
Forestil dig at min form er lavet ud fra et RS, hvor den henter alle id'erne og navne felterne fra en db, fordi at man skal kan tilføje og fjerne menu punkter på tilføjelses siden. Og siden der tjekker det skal så selvfølgelig have tjek af de samme id felter og det kan jeg kun gøre ved at tjekke fra databasen så vidte jeg ved.
Du skriver, at formen er oprettet dynamisk med feltnavne der hedder idnummeret, men id'et i din DB er jo et tal (hvis jeg har forstået ret), mens formfelternes navne er tekststrenge! Så når du forsøger følgende: Request.form(rs("id")) vil rs("id") returnere et tal, således: Request.form([tal]) Måske går det galt? Har du i stedet prøvet med: Request.form(CStr(rs("id"))) Således, at det bliver konverteret til en streng først?
En anden lille ting: Du behøver ikke teste med en if-sætning først "If not rs.eof then", da sætningen "Do While Not rs.EOF" jo også tester på, om EOF er true!
hvis du for en fejmeddelse vedr. Array is out of index....hvor er det lige du har noget med et array at gøre???...måske lidt mere kode vil hjælpe... *selv i yoga-stilling og med masser af røgelse ..har jeg sq stadig lidt svært ved at forestille mig eksakt hva du vil opnå..*sorry*
Men etlekana - den rs du åbner for at generere din forms indhold lever vel ikke længere end til IIS har været gennem scriptet og genereret en response til klienten ? Hvis man tilgår din .asp side vil man i browseren (vis kilde) vel IKKE kunne læse noget om rs nogen steder. Så kan man heller ikke referere til den fra efterfølgende .asp sider, men skal i stedet referere til inputfelternes navne (som måske består af tal i dit tilfælde), som jpk skriver i sit indlæg.
Du skriver, at formen er oprettet dynamisk med feltnavne der hedder idnummeret, men id'et i din DB er jo et tal (hvis jeg har forstået ret), mens formfelternes navne er tekststrenge! Så når du forsøger følgende: Request.form(rs("id")) vil rs("id") returnere et tal, således: Request.form([tal]) Måske går det galt? Har du i stedet prøvet med: Request.form(CStr(rs("id"))) Således, at det bliver konverteret til en streng først?
En anden lille ting: Du behøver ikke teste med en if-sætning først "If not rs.eof then", da sætningen "Do While Not rs.EOF" jo også tester på, om EOF er true!
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.