Avatar billede no_doubt Nybegynder
27. juni 2005 - 21:59 Der er 7 kommentarer og
1 løsning

gennemkørsel af tekstbokse.

Hvordan kører jeg igennem fem inputbokse og kun insetter dem der er noget i i databasen.
Avatar billede no_doubt Nybegynder
27. juni 2005 - 22:56 #1
eller med andre ord...

Hvad er der galt med det.

<%
if request.form("B1") <> "" then
set conn = server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db.mdb")
Conn.Execute "Insert into afstemning (afstemningsid, navn, valg) VALUES ('3','" & request.form("T1") & "', '" & request.form("T2") & "'"
Conn.Execute "Insert into afstemning (afstemningsid, navn, valg) VALUES ('3','" & request.form("T1") & "', '" & request.form("T3") & "'"
Conn.Execute "Insert into afstemning (afstemningsid, navn, valg) VALUES ('3','" & request.form("T1") & "', '" & request.form("T4") & "'"
Conn.Execute "Insert into afstemning (afstemningsid, navn, valg) VALUES ('3','" & request.form("T1") & "', '" & request.form("T5") & "'"
response.redirect "afstemning.asp"
Conn.Close
Set Conn = Nothing
end if
%>
Avatar billede softspot Forsker
28. juni 2005 - 00:08 #2
Hvilke symptomer har du, mao. hvad sker der når du udfører koden?

Kan man evt. få den HTML at se som poster til denne kode?

Umiddelbart ville jeg konvertere request.form-felterne til strings med CStr-funktionen (f.eks. CStr(request.form("T1"))) inden jeg aflæser dem. Hvis der kun skal skrives for de felter som har et indhold (dvs. forskellig fra tom streng), så ville jeg bruge flg. kode:

if CStr(request.form("T2")) <> "" then
  Conn.Execute "INSERT..."
end if
if CStr(request.form("T3")) <> "" then
  Conn.Execute "INSERT..."
end if
if CStr(request.form("T4")) <> "" then
  Conn.Execute "INSERT..."
end if
if CStr(request.form("T5")) <> "" then
  Conn.Execute "INSERT..."
end if
Avatar billede softspot Forsker
28. juni 2005 - 00:09 #3
Husk i øvrigt at lukke forbindelsen til databasen inden du udfører response.redirect, ellers risikerer du at ende med en masse åbne forbindelser som med tiden givetvis vil få din applikation til at gå ned...
Avatar billede no_doubt Nybegynder
28. juni 2005 - 00:15 #4
Kan du ikke prøve at skrive det ind i mit. Ja der skal kun indsettes for felter der har data.
Avatar billede softspot Forsker
28. juni 2005 - 00:20 #5
Det kunne være noget i stil med dette:

<%
if request.form("B1") <> "" then
  set conn = server.CreateObject("ADODB.Connection")
  conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db.mdb")
  if CStr(request.form("T2")) <> "" then
    Conn.Execute "Insert into afstemning (afstemningsid, navn, valg) VALUES ('3','" & request.form("T1") & "', '" & request.form("T2") & "'"
  end if
  if CStr(request.form("T3")) <> "" then
    Conn.Execute "Insert into afstemning (afstemningsid, navn, valg) VALUES ('3','" &  request.form("T1") & "', '" & request.form("T3") & "'"
  end if
  if CStr(request.form("T4")) <> "" then
    Conn.Execute "Insert into afstemning (afstemningsid, navn, valg) VALUES ('3','" & request.form("T1") & "', '" & request.form("T4") & "'"
  end if
  if CStr(request.form("T5")) <> "" then
    Conn.Execute "Insert into afstemning (afstemningsid, navn, valg) VALUES ('3','" & request.form("T1") & "', '" & request.form("T5") & "'"
  end if
  Conn.Close
  Set Conn = Nothing
  Response.Redirect "afstemning.asp"
end if
%>

Bemærk at forbindelsen lukkes før redirect.
Der tages kun stilling til om valg har indhold og ikke navn, men du kan nok godt finde ud af at indsætte en betingelse mere hvis det bliver nødvendigt...?
Avatar billede no_doubt Nybegynder
16. juli 2005 - 18:02 #6
ligger i lige svar..
Avatar billede softspot Forsker
16. juli 2005 - 19:08 #7
De gjorde vi her :)
Avatar billede softspot Forsker
16. juli 2005 - 19:09 #8
Ok, det kiksede lidt... De = Det ;)
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