webForumDet fria alternativet

Uppdatering med querystring - funkar ej

9 svar · 358 visningar · startad av crisse6

crisse6Medlem sedan dec. 20002 526 inlägg
#1

Hej!

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
@ndersMedlem sedan juni 200032 969 inlägg
#2

Jag kan iofs inte se om det spelar någon roll, men...

...action=""modda.asp?uppdatera=yes&id="& request.querystring("id") &"" ...

Det skulle vara kul om du bytte namn på ditt textfält också. Vårda ditt språk, unge man!

- - - -

På vilket sätt fungerar det inte?

crisse6Medlem sedan dec. 20002 526 inlägg
#3

@nders, vad menar du med koden?

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 :e :e

[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>
@ndersMedlem sedan juni 200032 969 inlägg
#4

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.

mvh,

crisse6Medlem sedan dec. 20002 526 inlägg
#5

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

rad 64 (eller 63, dvs sql satsen):

sql = "insert into Banners (BannerURL, img) VALUES ('" & request.form("adress") &"', '" & request.form("bild") & "')"
Jesper TMedlem sedan nov. 20017 144 inlägg
#6

Du har väl döpt adressfältet fel eller något. Skriv ut sqlsatsatsen.
response.write sql

OveRRidEMedlem sedan feb. 200112 078 inlägg
#7

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.

crisse6Medlem sedan dec. 20002 526 inlägg
#8

du menar att om jag bara andrar det till att tillata Null sa funkar det eller? Men jag vill inte att nagon tom data ska foras in!!

@ndersMedlem sedan juni 200032 969 inlägg
#9

crisse6 skrev:

du menar att om jag bara andrar det till att tillata Null sa funkar det eller? Men jag vill inte att nagon tom data ska foras in!!

Varför har du satt ett eller-villkor i if-satsen? Ändra till och.

Mvh,

crisse6Medlem sedan dec. 20002 526 inlägg
#10

Allt funkar nu, slutkoden blev:

[red]
If request.querystring("vad") = "new" then

If request.form("adress") = "" OR request.form("bild") = "" 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>"
else
sql = "insert into Banners (BannerURL, img, BannerViews) VALUES ('" & request.form("adress") &"', '" & request.form("bild") & "', '1')"
objConn.Execute sql,,128
End if
End if
%>
265 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
125 ms — hämta statistik (db)
137 ms — hämta tråd, inlägg och bilagor (db)