webForumDet fria alternativet

kryssrutor i formulär fungerar inte...

ASP

11 svar · 383 visningar · startad av plelkes

Medlem sedan mars 2002823 inlägg
Frågan#1

... det enda som händer är att samma sida (1.asp) laddas igen när jag trycker på knappen. Och jag som trodde att jag gjorde enligt alla konster...

1.asp

 <%@ Language=VBScript LCID=1053%>

 <HTML><title>utskrivning</title>
    <BODY>
<h1 align="center"><font size="7" face="Verdana, Arial, Helvetica, sans-serif"><em><strong><u>utskrivning av Patienter</u></strong></em></font></h1><BR>
 <%
    Set objConn = Server.CreateObject("ADODB.Connection")
   objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\vatskebalans\db\vbalans.mdb")
   strSQL =" SELECT * FROM tblPersonuppgifter "
 %>
<FORM ACTION=""radera.asp"" METHOD=""post"">
<TABLE border=1>
       <TR>
          <TD><B>Personnummer</B></TD>
          <TD><B>Efternamn</B></TD>
          <TD><B>Förnamn</B></TD>
    <TD><B>Skriv ut patienten</B></TD>
       </TR>
 <%
 	Set objRS = objConn.Execute(strSQL)
    Do While Not objRS.EOF
       Response.Write "<TR><TD>" & objRS("PatID") & "</TD>"
       Response.Write "<TD>" & objRS("ftEnamn") & "</TD>"
       Response.Write "<TD>" & objRS("ftFnamn") & "</TD>"
Response.Write "<TD><INPUT NAME=""delete"" TYPE=""checkbox""VALUE="""& objRS("PatID") &"""></TD></TR>"
       objRS.MoveNext
    Loop
Response.Write "<TR ALIGN=""RIGHT"" VALIGN=""MIDDLE"">"
    Response.Write "<TD COLSPAN=""3"">"
    Response.Write "<INPUT TYPE=""submit"" VALUE=""Skriv ut patienten"">"
    Response.Write "</TD></TR>"
	Response.Write "</TABLE></FORM>"
    objRS.Close
    Set objRS = Nothing
    objConn.Close
    Set objConn = Nothing

 %>
        </BODY>
 </HTML>

radera.asp

<%
Set vatskeb = Server.CreateObject( "Adodb.Connection" )
vatskeb.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vatskeb.ConnectionString = "Data Source='" & MdbFilePath & "'"
vatskeb.open

strSQL = "DELETE FROM tblPersonuppgifter WHERE PatID IN("&request.form("delete")&")"

vatskeb.Execute strSQL, , 128
            
vatskeb.close
Set vatskeb = Nothing
Response.Redirect "meny.htm"

%>
Medlem sedan juni 200032 967 inlägg
#2

Du har lite väl många citationstecken runt din action (och method) i <form>-taggen. Det innebär att formuläret postas till aktuell sida (1.asp), utan att ha angett metod, innebärande att det blir till GET.

Mvh

Medlem sedan sep. 20026 425 inlägg
#3
<INPUT NAME=""delete"" TYPE=""checkbox""VALUE="""& objRS("PatID") &""">

bör i första hand skrivas om till

<INPUT NAME=""delete"" TYPE=""checkbo[b]x"" VA[/b]LUE="""& objRS("PatID") &""">

Du har glömt ett mellanslag. Sen så har du ju för många " i din HTML-kod för formuläret.

Annars kan jag direkt inte se något fel. :)

/r @nders..

Medlem sedan nov. 20018 492 inlägg
#4

Ska vara ett mellanrum mellan checkbox"" och VALUE.
Vad använder du IN för, borde du inte köra med WHERE PatID = " & Request.Form("delete") & "?

Medlem sedan juni 200032 967 inlägg
#5

Mika3l skrev:

Vad använder du IN för, borde du inte köra med WHERE PatID = " & Request.Form("delete") & "?

Det använder han för att kunna radera fler poster på samma gång (alla vars kryssrutor markerats), så det är helt i sin ordning.

mvh

Medlem sedan mars 2002823 inlägg
#6

Hej igen,
nu har jag gjort som @nders och m_soderlund reomnederade...
Men nu ogillas kodraden

vatskeb.Execute strSQL, , 128
Medlem sedan juni 200032 967 inlägg
#7

På vilket sätt ogillas den? Felmeddelande samt utskriven SQL-fråga tack. :)

Medlem sedan mars 2002823 inlägg
#8

felmeddelande

Microsoft JET Database Engine error '80040e07'

Data type mismatch in criteria expression.

/vatskebalans/radera.asp, line 8
Syntax error (missing operator) in query expression 'PatID IN()'.

Medlem sedan juni 200032 967 inlägg
#9

Vad är patID för datatyp? Om det är text måste du slänga in apostrofer runt varje id. Men det bör inte vara av texttyp.

Response.Write "<TD><INPUT NAME=""delete"" TYPE=""checkbox""VALUE=""'"& objRS("PatID") &"'""></TD></TR>"

mvh

Medlem sedan mars 2002823 inlägg
#10

utskriven SQLfråga:

DELETE FROM tblPersonuppgifter WHERE PatID IN(1111111111)

@nders skrev:

Vad är patID för datatyp? Om det är text måste du slänga in apostrofer runt varje id. Men det bör inte vara av texttyp.

jo, tyvärr så är det text...
Varför bör det inte vara det??

Medlem sedan juni 200032 967 inlägg
#11

Eller var det du som hade personnummer där? Isåfall måste du ha text ja. :)

Jag lurades av namnet med ID, det brukar innebära ett enkelt tal, och då bör ju helt klart datatypen vara tal.

Testade du koden i mitt förra inlägg?

Medlem sedan mars 2002823 inlägg
#12

@nders skrev:

Om det är text måste du slänga in apostrofer runt varje id

Som vanligt så ger du mig perfekt lösning :birp

257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)