Avatar billede jansangill Nybegynder
23. oktober 2007 - 16:27 Der er 8 kommentarer og
1 løsning

update flere samme tid

hej, har et lille(stort) problem med at opdatere flere felte rpå samme tid:

her er min kode so far:

'update alt i flash_uge
if request.form("okay") = "Opdater" then
for each fld in request.form
    fldParts = split(fld, "_")
    paxValue = tt("pax_" & fldParts(1))
    response.write  fldParts(1) & "--" & fldParts(0)
    'SQL = "update flash_uge set pax='" & paxValue & "' where id=" & fldParts(1)
    'Conn.execute(SQL)
  next
end if

<%
'skriv input ud
    sql = "SELECT * FROM flash_uge WHERE aar = '2007'"
    SET RSS = Conn.Execute(sql)
    do while not rss.eof
        id = rss("id")
        data = rss("pax")
        response.write "<td><input type='text' name='pax_"&id&"' value='"&data&"' style='width:25px;' ></td>"
        rss.movenext
    loop
    %>

har prøvet at skrive spil ud, som giver:

6--pax9--pax12--pax1--pax5--pax2--pax3--pax4--pax11--pax7--pax

Microsoft VBScript runtime error '800a0009'

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

/web/templates/sider/flash/admin.asp, line 28

Hvad gør jeg glat, og hvad skal jeg gøre for at rette på det:(
Avatar billede nielle Nybegynder
23. oktober 2007 - 17:57 #1
Gætter på at det er i denne blok den fejler:

fldParts = split(fld, "_")
paxValue = tt("pax_" & fldParts(1))

Er du 100 % på at der faktsk er et _-tegn i samtlige dine sublittede form-værdier?
Avatar billede jansangill Nybegynder
23. oktober 2007 - 18:13 #2
Det burde der da være, når jeg gør dette?

response.write "<td><input type='text' name='pax_"&id&"' value='"&data&"' style='width:25px;' ></td>"

Kan det spille ind at jeg har flere forms på samme side?

Udover det, så gider den godt at opdatere data, med undtagelse af to af felterne, som for mig er uforståeligt?
Avatar billede nielle Nybegynder
23. oktober 2007 - 18:18 #3
Det kunne meget vel tænkes at en af de form informationer der bliver sendt er selve submit-knappen...

Det er dog let at tjekke efter:

'update alt i flash_uge
if request.form("okay") = "Opdater" then
    for each fld in request.form
        Response.Write "DEBUG: " & fld & "<br>"

        fldParts = split(fld, "_")
        paxValue = tt("pax_" & fldParts(1))
        response.write  fldParts(1) & "--" & fldParts(0)
        'SQL = "update flash_uge set pax='" & paxValue & "' where id=" & fldParts(1)
        'Conn.execute(SQL)
    next
end if

Forresten: Skal du ikke bruge dine værdier? Den viste kode kigger kun på felt-navnene, ikke deres tilsvarende værdi...
Avatar billede jansangill Nybegynder
23. oktober 2007 - 18:18 #4
Og hvis jeg skriver paxValue ud får jeg kun 10 numre, men jeg skal have 12.
Avatar billede jansangill Nybegynder
23. oktober 2007 - 18:32 #5
Du havde ret, det var min submit der gjorde det. Så har jeg da lært det.

Hvad mener du med:

Forresten: Skal du ikke bruge dine værdier? Den viste kode kigger kun på felt-navnene, ikke deres tilsvarende værdi...

Som jeg ser det, giver jeg hvert input felt et unikt navn, som jeg så løber igennem og opdaterer efter id.

Er det den her du mener? paxValue = tt("pax_" & fldParts(1))
Avatar billede nielle Nybegynder
23. oktober 2007 - 18:40 #6
Jeg ved ikke hvad tt(..) gør, men for at få fat på værdien af feltet fld så er det:

Request.Form(fld)

og den kan jeg ikke lige se nogen steder.
Avatar billede jansangill Nybegynder
23. oktober 2007 - 18:53 #7
nemlig ja, den missede jeg, det skulle selvf være tt(fld)

Det virkede dog på dne anden måde da det var en inf felt i db, som bare smed alt tekst væk

Smid du et svar, og tak for hjælp
Avatar billede jansangill Nybegynder
23. oktober 2007 - 18:54 #8
int*
Avatar billede nielle Nybegynder
23. oktober 2007 - 19:12 #9
Svar :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester