Hejsan! Vad du kan göra är att köra en <code><input type="button" value="Radera bokning"></code> och i den så lägger du till en javascript på onClick där du länkar till samma sida men skickar med ett värde i querystring. Men jag måste väl ge raden i tabellen ett värde också för jag kan väl inte bara skriva <input type="reset" name="Reset" value="Radera bokning" onClick="location.href=='bokningar.asp?id=<% =RecSet("Bokid") %>"> Du har ju den unika radens id genom räknaren, ditt bokId. När du sedan kommer tillbaka till samma sida efter att du har klickat på knappen kör du bara en koll som sedan tar bort raden. Du kan ju istället använda checkboxar för att markera vilka poster du vill ta bort. Då kan man markera en eller flera. Det blir väldigt bökigt om man har en knapp för varje och vill ta bort mer än en? Det kan jag nog hålla med om att det blir lättare att jobba med checkboxar. Men den säger till om <input type="checkbox" name="BokId" value="<%=RecSet("Bokid")%>"> Det finns en klar nackdel med att sköta databastransaktioner på samma sida. Om man trycker på Uppdatera-knappen i webbläsaren kommer sidan försöka ta bort posten igen, men eftersom den inte längre finns kommer du få ett felmeddelande. Du vet inte vad du talar om. Det kommer inta alls bli några felmeddelanden. Jag har gjort något liknande på min sida där jag tar väck en rad från databasen men jag skulle vilja ha det på en och samma sida! När jag nu trycker på knappen så händer det inget alls! Och jag har kollat så att alla namn nu stämmer i databasen! Vart är formtagarna och submitknappen? Borde det inte se ut så här? Nu när jag trycker på knappen så ser det ut som den laddas men inget raderas... kan det ha något med DELETE satsen att göra? På den koden som du skrev innan så kom det checkboxar under Bokid också, men det ska endast vara längst till höger, sedan tycker jag inte att Bokid ska vara med på sidan alls, eftersom detta inte är av intresse att se. Men fattar sidan att checkboxen ska ha samma id som vad Bokid har i databasen?? Nu när jag trycker på knappen så ser det ut som den laddas men inget raderas... kan det ha något med DELETE satsen att göra? På den koden som du skrev innan så kom det checkboxar under Bokid också, men det ska endast vara längst till höger, sedan tycker jag inte att Bokid ska vara med på sidan alls, eftersom detta inte är av intresse att se. Men fattar sidan att checkboxen ska ha samma id som vad Bokid har i databasen?? Du kan prova med: Denna rad:Radera knapp
Jag har en tabell där den listar upp rader med Namn, Tid, Dag och Vecka mm, som hämtas från databasen! Nu skulle jag vilja ha en knapp som raderar denna rad ur databasen, men den ska bara radera den raden, så jag har lagt en knapp efter varje rad.
Så här ser koden ut för tabellen:
<%
Set Connect = Server.CreateObject("ADODB.Connection") dsntemp ="DRIVER=Microsoft Access Driver (*.mdb);" dsntemp=dsntemp & "DBQ=" & Server.MapPath ("bowling.mdb")
Connect.Open dsntemp RecSet = Server.CreateObject("ADODB.Recordset")
Oppna = ("SELECT * FROM Bokning ORDER BY Vecka, Dag, Tid, Bana;")
RecSet.Open Oppna, Connect
Do until RecSet.EOF
%>
<tr>
<td width="7%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><% = (RecSet("Vecka")& " ")%></font></td>
<td width="11%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><% = (RecSet("Dag")& " ")%</font></td>
<td width="6%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><% = (RecSet("Tid")& " ")%</font></td>
<td width="8%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><% = (RecSet("Bana")& " ")%></font></td>
<td width="20%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><% = (RecSet("Namn")& " ")%></font></td>
<td width="18%">
<div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><% = (RecSet("Telefonnr")& " ")%>
</font> </div>
</td>
<td width="30%">
<input type="reset" name="Reset" value="Radera bokning">
</td>
</tr>
<%
RecSet.movenext() Loop RecSet.close Connect.close
%>
Man kan väl göra allt på en och samma sida? Så att när jag tar bort en bokning så uppdateras sidan bara, så att den försvinner!
Tack på förhandSv: Radera knapp
<code>
<input type="button" value="Radera bokning" onClick="location.href=='dinSida.asp?id=<%=rs("Din_räknare")%>'">
</code>Sv: Radera knapp
Jag vet inte riktigt hur jag ska göra så att den förstår att när jag trycker på knappen ska den veta att den ska ta bort den raden på hemsidan och i databasenSv: Radera knapp
<code>
<%
if request.querystring("bokId")<>"" then
connection.execute("Delete from tblBokning where bla bla bla......")
end if
%>
</code>Sv: Radera knapp
<code>
<form>
<table>
<%
Dim strIn
Dim strSQL
Dim varTemp
Dim RecSet
Dim Connect
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER=Microsoft Access Driver (*.mdb);" & _
"DBQ=" & Server.MapPath ("bowling.mdb")
Select Case Request.Form("Action")
Case "Ta bort"
For Each varTemp In Request.Form("BokId")
If IsNumeric(varTemp) Then
strIn = strIn & ", " & varTemp
End If
Next
If Len(strIn) Then
strSQL = "DELETE FROM Bokning WHERE BokId IN (" & strIN & ")"
Connect.Execute strSQL
Else
Response.Write "Du har inte markerat några poster att ta bort!"
End If
End Select
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open "SELECT *" & vbCrLf & _
"FROM Bokning" & vbCrLf & _
"ORDER BY Vecka, Dag, Tid, Bana;", Connect
Do until RecSet.EOF
%>
<tr>
<td width="7%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Vecka")%></font></td>
<td width="11%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Dag")%</font></td>
<td width="6%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Tid")%</font></td>
<td width="8%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Bana")%></font></td>
<td width="20%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Namn")%></font></td>
<td width="18%">
<div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Telefonnr")%></font>
</div>
</td>
<td width="30%">
<input type="checkbox" name="BokId" value="<%=RecSet("Bokid")%>">
</td>
</tr>
<%
RecSet.movenext()
Loop
RecSet.close
Set RecSet = Nothing
Connect.close
Set Connect = Nothing
%>
</table>
<input type="submit" name="Action" value="Ta bort">
<form>
</code>Sv: Radera knapp
Felmeddelande: Item cannot be found in the collection corresponding to the requested name or ordinal.Sv: Radera knapp
Personligen utför jag alla transaktioner på en separat sida som sedan skickar användaren tillbaka till sidan man kom ifrån.Sv: Radera knapp
ReDirect var skapad för tillfälliga omdirigeringar. Du utsäter dessutom serververn för onödig belastning.Sv: Radera knapp
<code><table border="0" width="534">
<tr><td>
<form method="POST" action="action.asp?action=delete">
<input type="text" name="bort" size="45"><input type="submit" value="delet" name="b1"></p>
</form></td></tr></code>
sedan i action.asp har jag följande kod
<code>
<%
Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("boka.mdb")&";" ' <-- denna inkluderar jag från en annan sida
Select Case request("action")
Case "delete"
Call delete()
Sub delete() '******************* Tar bort en anmälare
b1 = LCase(Request("b1"))
bort = Request.form("bort")
sql = "DELETE * from boka where nick = '" & bort & "'"
con.execute(sql)
con.close
set con=nothing
end sub%>
</code>
Du får ändra i koden till dina värden. Jag skriver in ett namn i textrutan och trycker på knappen så raderas den från databasen. Sv: Radera knapp
Andreas du sa att det inte skulle bli några problem och ha det på samma sida eller? Men hur löser jag det då? För jag får felmeddelande som jag har skrivit i ett tidigare inläggSv: Radera knapp
strIN är det själva checkboxen eller? Är jättetacksam för all hjälp jag får! Är inte en stjäna på det här direkt =)
<%
Set Connect = Server.CreateObject("ADODB.Connection")
dsntemp ="DRIVER=Microsoft Access Driver (*.mdb);"
dsntemp=dsntemp & "DBQ=" & Server.MapPath ("bowling.mdb")
Connect.Open dsntemp
Set RecSet = Server.CreateObject("ADODB.Recordset")
Select Case Request.Form("Action")
Case "Ta bort"
For Each varTemp In Request.Form("Boknr")
If IsNumeric(varTemp) Then
strIn = strIn & ", " & varTemp
End If
Next
If Len(strIn) Then
strSQL = "DELETE FROM Bokning WHERE Boknr = (" & strIN & ")"
Connect.Execute strSQL
Else
Response.Write "Du har inte markerat några poster att ta bort!"
End If
End Select
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open "SELECT Boknr, Vecka, Dag, Tid, Bana, Namn, Telefonnr" & vbCrLf & _
"FROM Bokning" & vbCrLf & _
"ORDER BY Vecka, Dag, Tid, Bana;", Connect
Do until RecSet.EOF
%>
<tr>
<td width="7%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Boknr")%></font></td>
<td width="7%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Vecka")%></font></td>
<td width="11%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Dag")%></font></td>
<td width="6%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Tid")%></font></td>
<td width="8%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Bana")%></font></td>
<td width="20%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Namn")%></font></td>
<td width="18%">
<div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Telefonnr")%></font>
</div>
</td>
<td width="30%">
<input type="checkbox" name="Boknr" value="<%=RecSet("Boknr")%>">
</td>
</tr>
<%
RecSet.movenext()
Loop
RecSet.close
Set RecSet = Nothing
Connect.close
Set Connect = Nothing
%>
</table>
<input type="reset" name="Action" value="Ta bort">
</body>
</html>Sv: Radera knapp
<code>
<html>
<body>
<form>
<table>
<%
Dim Connect
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER=Microsoft Access Driver (*.mdb);" & _
"DBQ=" & Server.MapPath ("bowling.mdb")
Select Case Request.Form("Action")
Case "Ta bort"
For Each varTemp In Request.Form("Boknr")
If IsNumeric(varTemp) Then
strIn = strIn & ", " & varTemp
End If
Next
If Len(strIn) Then
strSQL = "DELETE FROM Bokning WHERE Boknr = (" & strIN & ")"
Connect.Execute strSQL
Else
Response.Write "Du har inte markerat några poster att ta bort!"
End If
End Select
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open "SELECT Boknr, Vecka, Dag, Tid, Bana, Namn, Telefonnr" & vbCrLf & _
"FROM Bokning" & vbCrLf & _
"ORDER BY Vecka, Dag, Tid, Bana;", Connect
Do until RecSet.EOF
%>
<tr>
<td width="7%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Boknr")%></font></td>
<td width="7%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Vecka")%></font></td>
<td width="11%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Dag")%></font></td>
<td width="6%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Tid")%></font></td>
<td width="8%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Bana")%></font></td>
<td width="20%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Namn")%></font></td>
<td width="18%">
<div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Telefonnr")%></font>
</div>
</td>
<td width="30%">
<input type="checkbox" name="Boknr" value="<%=RecSet("Boknr")%>">
</td>
</tr>
<%
RecSet.movenext()
Loop
RecSet.close
Set RecSet = Nothing
Connect.close
Set Connect = Nothing
%>
</table>
<input type="submit" name="Action" value="Ta bort">
</form>
</body>
</html>
</code>Sv: Radera knapp
<%
Dim Connect, dsntemp, Oppna, RecSet, strIn, strSQL, varTemp
%>
<%
Set Connect = Server.CreateObject("ADODB.Connection") dsntemp ="DRIVER=Microsoft Access Driver (*.mdb);" dsntemp=dsntemp & "DBQ=" & Server.MapPath ("bowling.mdb")
Connect.Open dsntemp
Set RecSet = Server.CreateObject("ADODB.Recordset")
Select Case Request.Form("Action")
Case "Ta bort"
For Each varTemp In Request.Form("Boknr")
If IsNumeric(varTemp) Then
strIn = strIn & ", " & varTemp
End If
Next
If Len(strIn) Then
strSQL = "DELETE FROM Bokning WHERE Boknr = (" & strIN & ")"
Connect.Execute strSQL
Else
Response.Write "Du har inte markerat några poster att ta bort!"
End If
End Select
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open "SELECT Boknr, Vecka, Dag, Tid, Bana, Namn, Telefonnr" & vbCrLf & _
"FROM Bokning" & vbCrLf & _
"ORDER BY Vecka, Dag, Tid, Bana;", Connect
Do until RecSet.EOF
%>
<tr>
<td width="7%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Vecka")%></font></td>
<td width="11%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Dag")%></font></td>
<td width="6%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Tid")%></font></td>
<td width="8%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Bana")%></font></td>
<td width="20%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Namn")%></font></td>
<td width="18%">
<div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Telefonnr")%></font>
</div>
</td>
<td width="30%">
<input type="checkbox" name="Boknr" value="<%=RecSet("Boknr")%>">
</td>
</tr>
<td width="30%"> </td>
</tr>
<%
RecSet.movenext()
Loop
RecSet.close
Set RecSet = Nothing
Connect.close
Set Connect = Nothing
%>
</table>
<input type="submit" name="Action" value="Ta bort">
</form>
</body>
</html>Sv: Radera knapp
<%
Dim Connect, dsntemp, Oppna, RecSet, strIn, strSQL, varTemp
%>
<%
Set Connect = Server.CreateObject("ADODB.Connection") dsntemp ="DRIVER=Microsoft Access Driver (*.mdb);" dsntemp=dsntemp & "DBQ=" & Server.MapPath ("bowling.mdb")
Connect.Open dsntemp
Set RecSet = Server.CreateObject("ADODB.Recordset")
Select Case Request.Form("Action")
Case "Ta bort"
For Each varTemp In Request.Form("Boknr")
If IsNumeric(varTemp) Then
strIn = strIn & ", " & varTemp
End If
Next
If Len(strIn) Then
strSQL = "DELETE FROM Bokning WHERE Boknr = (" & strIN & ")"
Connect.Execute strSQL
Else
Response.Write "Du har inte markerat några poster att ta bort!"
End If
End Select
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open "SELECT Boknr, Vecka, Dag, Tid, Bana, Namn, Telefonnr" & vbCrLf & _
"FROM Bokning" & vbCrLf & _
"ORDER BY Vecka, Dag, Tid, Bana;", Connect
Do until RecSet.EOF
%>
<tr>
<td width="7%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Vecka")%></font></td>
<td width="11%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Dag")%></font></td>
<td width="6%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Tid")%></font></td>
<td width="8%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Bana")%></font></td>
<td width="20%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Namn")%></font></td>
<td width="18%">
<div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Telefonnr")%></font>
</div>
</td>
<td width="30%">
<input type="checkbox" name="Boknr" value="<%=RecSet("Boknr")%>">
</td>
</tr>
<td width="30%"> </td>
</tr>
<%
RecSet.movenext()
Loop
RecSet.close
Set RecSet = Nothing
Connect.close
Set Connect = Nothing
%>
</table>
<input type="submit" name="Action" value="Ta bort">
</form>
</body>
</html>
Sv: Radera knapp
<code>
<html>
<body>
<form>
<%
Dim Connect, Oppna, RecSet, strIn, strSQL, varTemp
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER=Microsoft Access Driver (*.mdb);" & _
"DBQ=" & Server.MapPath ("bowling.mdb")
Select Case Request.Form("Action")
Case "Ta bort"
For Each varTemp In Request.Form("Boknr")
If IsNumeric(varTemp) Then
strIn = strIn & ", " & varTemp
End If
Next
If Len(strIn) Then
strSQL = "DELETE FROM Bokning WHERE Boknr IN (" & Mid(strIN, 3) & ")"
Connect.Execute strSQL
Else
Response.Write "Du har inte markerat några poster att ta bort!"
End If
End Select
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open "SELECT Boknr, Vecka, Dag, Tid, Bana, Namn, Telefonnr" & vbCrLf & _
"FROM Bokning" & vbCrLf & _
"ORDER BY Vecka, Dag, Tid, Bana;", Connect
Do until RecSet.EOF
%>
<tr>
<td width="7%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Vecka")%></font></td>
<td width="11%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Dag")%></font></td>
<td width="6%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Tid")%></font></td>
<td width="8%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Bana")%></font></td>
<td width="20%"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Namn")%></font></td>
<td width="18%">
<div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" style="italic" size="-1"><%=RecSet("Telefonnr")%></font>
</div>
</td>
<td width="30%">
<input type="checkbox" name="Boknr" value="<%=RecSet("Boknr")%>">
</td>
</tr>
<td width="30%"> </td>
</tr>
<%
RecSet.movenext()
Loop
RecSet.close
Set RecSet = Nothing
Connect.close
Set Connect = Nothing
%>
</table>
<input type="submit" name="Action" value="Ta bort">
</form>
</body>
</html>
</code>Sv: Radera knapp
strSQL = "DELETE FROM Bokning WHERE Boknr = (" & strIN & ")"
ska nog ändras till:
strSQL = "DELETE FROM Bokning WHERE Boknr IN(" & strIn & ")"
för att det ska fungera.
För att Request.Form ska fungera ska form-taggen ändras till:
<form method="POST">
Standard-metoden är annars GET, då fungerar det med Request.QueryString. Men det ger också nackdelen att formulärets variabler syns i adress-fältet, vilket inte är så snyggt alla gånger.
Eftersom värdet från Boknr skickas som en lista avdelad med komman, och det är vad IN() vill ha så behövs inte for-loopen. Vill du ha den kvar måste du setill att ta bort det första kommat i listan så som beskrivits tidigare.
Så här kan det se ut:
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath ("bowling.mdb") & ";"
strIn = Request.Form("Boknr")
Select Case Request.Form("Action")
Case "Ta bort"
'For Each varTemp In Request.Form("Boknr")
' If IsNumeric(varTemp) Then
' strIn = strIn & ", " & varTemp
' End If
'Next
If Len(strIn) Then
strSQL = "DELETE FROM Bokning WHERE Boknr IN(" & strIn & ")"
Connect.Execute strSQL
Else
Response.Write "Du har inte markerat några poster att ta bort!"
End If
End Select
Lägg även märke till måsvingarna {} i connect-strängen som saknades tidigare.