Jag har en sida som listar upp bilder som finns i en mapp på servern, varje bild får en radioknapp , sen har jag sökvägarna till bilderna i en databas, nu till min fråga, hur gör man för att radera bilden i mappen samtidigt som sökvägen i databasen? Posten i databasen raderar du såhär: Jag har ett unikt id, men hur får jag det från formen till sidan som raderar posten? Det funkar inte med Request.Form("id") för då hämtar den alla id från sidan.... Jag skulle nog gjort så att jag satte ID som värde på din radiobutton eftersom du får det direkt då, sedan skulle jag slå upp filnamnet ur databasen för att kunna radera filen. Ok, det låter ju bra, men hur får jag in filnamnet så att jag kan radera bilden i mappen? >men hur får jag in filnamnet så att jag kan radera bilden i mappen? Du får gärna var ahur spydig som helst för jag måste vara helt dum i huvet som inte kan lösa det här... Jag tänkte mer att du bara skulle ta med id på sidan, sedan borde något sånt här fungera: Det var nära men inte riktigt rätt.... Verkar helskumt, jag ser inte något fel heller... vilken rad är rad 4? Set Connect = Server.CreateObject("ADODB.Connection") Exakt samma rad fungerar ju på den andra sidan... Har du testat att starta om burken?Hur raderar man på två ställen samtidigt?
Koden för att radera bilden i mappen har jag redan löst men hur gör man resten?
Så här ser koden ut:
<code>
radio = Request.Form("radio")
radio = split(radio,"/")
fileName = radio(ubound(radio))
fileToDelete = Server.MapPath("/admin/admin_filer/aktuellt/") & "\" & fileName
Set fs = Server.CreateObject("Scripting.FileSystemObject")
if fs.FileExists(fileToDelete)Then
fs.DeleteFile(fileToDelete)
end if
Response.Write fileName & " har raderats!"
</code>Sv: Hur raderar man på två ställen samtidigt?
Con.Execute "DELETE FROM tabellnamn WHERE fält = '" & filename & "'"
Om du har något unikt ID på posten är det bättre att använda det...
/JohanSv: Hur raderar man på två ställen samtidigt?
//JWSv: Hur raderar man på två ställen samtidigt?
/JohanSv: Hur raderar man på två ställen samtidigt?
//JWSv: Hur raderar man på två ställen samtidigt?
Jag är medveten om att detta kan låta lite spydigt, men jag tror nog att du borde kunna lista ut det med hjälp av koden som listar bilderna och den infon som finns i denna tråden... Om du inte lyckas kan du ju alltid hojta till igen! :)
/JohanSv: Hur raderar man på två ställen samtidigt?
Så här ser koden ut från formen:
<code>
<FORM METHOD="POST" ACTION="tabort_aktuellt_reg.asp" name="f" id="f">
<%
Dim colNumber
Dim Connect
Dim SQL
Dim rs
Dim x
colNumber = 6
Set Connect = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/admin/databas/db1.mdb")
SQL = "SELECT * FROM files"
rs.Open SQL, Connect, 1, 2
If Not rs.EOF then%>
<table width="450" border="0" cellpadding="0" cellspacing="0">
<%Do Until rs.EOF%>
<tr>
<%For x = 1 to colNumber%>
<td align="center" valign="top">
<%If rs.EOF then%>
<%Else%>
<img src="../../<%=rs("path")%>" width="50" height="50"><br>
<input type="radio" name="radio" value="<%=rs("ID")%>">
<input type="hidden" name="hidden" value="<%=rs("path")%>">
<%rs.MoveNext
End If%>
</td>
<%Next%>
</tr>
<%Loop%>
</table>
<%End If
rs.Close
Set rs = Nothing
Connect.Close
Set Connect = Nothing
%>
<br>
<br>
<input type="submit" value="Radera" class="brod" id=submit1 name=submit1>
</form>
</code>
Och sidan som tar emot:
<code>
<%
radio = Request.Form("radio")
hidden = Request.Form("hidden")
hidden = split(hidden,"/")
fileName = hidden(ubound(hidden))
fileToDelete = Server.MapPath("/admin/admin_filer/aktuellt/") & "\" & fileName
Set fs = Server.CreateObject("Scripting.FileSystemObject")
if fs.FileExists(fileToDelete)Then
fs.DeleteFile(fileToDelete)
end if
Response.Write fileName & " har raderats ur databasen!"
%>
</code>
När jag kör koden så funkar ID jättebra precis som du sa men när jag ska ta hidden taggen så kommer alla sökvägar inte bara den som jag vill tabort med till sidan som raderar från mappen...
Kan DU knäcka det så är jag glad...
//JWSv: Hur raderar man på två ställen samtidigt?
<code>
radio = Request.Form("radio")
Set Connect = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/admin/databas/db1.mdb")
SQL = "SELECT * FROM files WHERE ID = " & radio
rs.Open SQL, Connect, 1, 2
filename=rs("path")
rs.Delete
rs.Close
Connect.Close
Set Connect = Nothing
Set rs = Nothing
fileToDelete = Server.MapPath("/admin/admin_filer/aktuellt/") & "\" & fileName
Set fs = Server.CreateObject("Scripting.FileSystemObject")
if fs.FileExists(fileToDelete)Then
fs.DeleteFile(fileToDelete)
end if
Response.Write fileName & " har raderats ur databasen!"
</code>
Jag har säkert missat någon detalj nu, men principen är denna iaf...
/JohanSv: Hur raderar man på två ställen samtidigt?
Felmeddelandet som kommer upp ser ut så här:
error 'ASP 0115'
Unexpected error
/admin/text/aktuellt/tabort_aktuellt_reg.asp
A trappable error occurred in an external object. The script cannot continue running. error 'ASP 0115'
Unexpected error
/admin/text/aktuellt/tabort_aktuellt_reg.asp
A trappable error occurred in an external object. The script cannot continue running.
Server object error 'ASP 0115 : 8000ffff'
Unexpected error
/admin/text/aktuellt/tabort_aktuellt_reg.asp, line 4
A trappable error occurred in an external object. The script cannot continue running.
Jag kan inte se var felet ligger...
//JWSv: Hur raderar man på två ställen samtidigt?
/JohanSv: Hur raderar man på två ställen samtidigt?
Sv: Hur raderar man på två ställen samtidigt?
/Johan