Har nu suttit har ett tag och far inte ordning pa varfor min kara kod inte uppdaterar som jag vill genom querystring (kolla kommentarerna i koden):
[red]
'### Om querystring ar edit sa ska vi andra
If request.querystring("vad") = "edit" then
sql = "select * from Banners where BannerID = "& request.querystring("id") &""
set rs = objConn.Execute(sql)
response.write "<form name=""edit"" method=""post"" action=""modda.asp?uppdatera=yes&id="& rs("BannerID") &""">" &_
"URL NU: "& request.querystring("adress") &"<br>Edit to:<br><input type=""text"" name=""kuk""><br>" &_
"IMG:<br><input type=""text"" name=""img"" value="""& request.querystring("img") &"""><br>" &_
"<input type=""Submit"" value=""Skicka"">" &_
"</form>"
'### Om request.form("kuk") inte ar tomt sa ske uppdatering...
If not request.form("kuk") = "" then
sql2 = "update Banners SET BannerURL = '" & request.form("kuk") & "' Where BannerID = " & request.querystring("id") & ""
objConn.Execute sql2,,128
Textfaltet har haft namnen url, adress men nar jag igar hade suttit med skriptet x antal timmar sa blev en person lite smaarg och dopte textfaltet till nagot fult
[r]
Psst... Inga felmess, men den uppdaterar inte liksom, det ar problemet
[/r]
Vill du se hela koden for sidan??? Ah, postar den har:
<html>
<head>
<title>Banner rotation Admin</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<font face="Verdana" size="2">
<%
Dim objConn
Dim sql
Dim rs
'### Databaskoppling
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("/horjavel/db/banners.mdb")
If request.querystring("vad") = "" then
sql = "select * from Banners"
set rs = objConn.Execute(sql)
If rs.eof then
response.write "Inga banners i databasen!"
'### ...annars
else
'### Startar en loop tills det ar tomt
Do until rs.Eof
'### Gor sa att det blir 2 olika farger i tabellen
if bgcolor = "#EFEFEF" then
bgcolor = "#FFFFFF"
else
bgcolor = "#EFEFEF"
end if
'### Skriver ut tabell...
response.write "<table bgcolor="""&bgcolor&"""><tr><td>"& rs("BannerURL") &"</td>" &_
"<td><a href=""modda.asp?vad=edit&id="& rs("BannerID") &"&adress="& rs("BannerURL") &"&img="& rs("img") &""">Edit</a></td>" &_
"<td><a href=""modda.asp?vad=delete&id="& rs("BannerID") &""">Delete</a></td></tr></table>"
rs.movenext
loop
End if
rs.close
set rs = Nothing
End if
If request.querystring("vad") = "delete" then
sql = "delete from Banners where BannerID = " & request.querystring("id") & ""
objConn.Execute sql,,128
response.redirect "modda.asp"
End if
'### Om querystring ar edit sa ska vi andra
If request.querystring("vad") = "edit" then
sql = "select * from Banners where BannerID = "& request.querystring("id") &""
set rs = objConn.Execute(sql)
response.write "<form name=""edit"" method=""post"" action=""modda.asp?uppdatera=yes&id="& rs("BannerID") &""">" &_
"URL NU: "& request.querystring("adress") &"<br>Edit to:<br><input type=""text"" name=""kuk""><br>" &_
"IMG:<br><input type=""text"" name=""img"" value="""& request.querystring("img") &"""><br>" &_
"<input type=""Submit"" value=""Skicka"">" &_
"<input type=""hidden"" name=""id"" value="""& rs("BannerID") &"""></form>"
If not request.form("kuk") = "" then
sql2 = "update Banners SET BannerURL = '" & request.form("kuk") & "' Where BannerID = " & request.querystring("id") & ""
objConn.Execute sql2,,128
End if
End if
objConn.close
Set objConn = Nothing
%>
</font>
</body>
</html>
I den lilla kodsnutt jag postade bytte jag bort recordset-referensen i formulärets action mot värdet som kom i querystring.
I övrigt, när du kommer fram, vilken url kommer du fram till då? finns värdet med i querystring? (Kolla genom att högerklicka i webbläsaren och välj properties)
Annars kan du alltid prova att lägga id i ett hiddenfält i formuläret så länge.
det loste sig (ska posta kod senare, hinner ej nu)
men nu har jag ett annat problem i samma kod fast jag har lagt till om querystringen ar "new" sa ska inserts gora, men bara om falten innehaller nat... ta en titt pa denna kod:
If request.querystring("vad") = "new" then
response.write "<font face=""Verdana"" size=""1""><form name=""new"" method=""post"" action=""modda.asp?vad=new"">" &_
"URL till hemsidan:<br>" &_
"<input type=""text"" name=""adress"">" &_
"<br>IMG adress:<br>" &_
"<input type=""text"" name=""bild""><br>" &_
"<input type=""submit"" value=""Add now"">" &_
"</form></font>"
If not request.form("adress") = "" OR request.form("bild") = "" then
sql = "insert into Banners (BannerURL, img) VALUES ('" & request.form("adress") &"', '" & request.form("bild") & "')"
objConn.Execute sql,,128
response.write sql
End if
End if
[/red]
far felmess:
Microsoft JET Database Engine error '80004005'
Field 'Banners.BannerURL' cannot be a zero-length string.
/horjavel/modda.asp, line 64
Felmeddelandet talar ju helt för sig självt. Kolumnen BannersURL i tabellen Banners får inte vara NULL (inget), precis så som din databas är konfigurerad.