Just nu i M3-nätverket
Jump to content

Editera inlägg i databas med hjälp utav request.qu


Benghaaa

Recommended Posts

Hej, jag sitter och gör en klubbhemsida till en volleybollklubb och just nu håller jag på med "kommande matcher" koden.

Jag har gjort allt på en och samma sida, och använder mig av Request.querystring för att få fram önskat val.

 

problemet är att om man som admin vill redigera en kommande match, ex om man har stavat fel osv så kommer inte redigera sidan fram, utan man kommer till "index" alltså request.querystring=("DO")= "".

 

---------------------------------------------------------

Såhär ser länken för att komma till "editsidan" ut

---------------------------------------------------------

 

index.asp?adressID=<% =RecSet("ID") %>

 

----------------------------------------

Såhär ser koden för "editsidan" ut.

-----------------------------------------

 

<% Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\XXXXX\db.mdb"

 

Set RecSet = Server.CreateObject("ADODB.Recordset")

Visa = "SELECT * FROM kommande WHERE ID =" & Trim(Request.QueryString("adressID")) & " "

 

RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>

<form method="POST" action="index.asp?do=update">

 

<input type="hidden" name="AD" value="<% =Request.QueryString("adressID")%>">

 

<td><input name="hemma" type="text" value="<% =RecSet("Hemma") %>" size="20"></td>

<td><input name="borta" type="text" value="<% =RecSet("Borta") %>" size="20"></td>

<td><input name="div" type="text" value="<% =RecSet("Div") %>" size="5"></td>

 

<td><input name="datum" type="text" value="<% =RecSet("Datum") %>" size="20"></td>

 

</table>

<p>

<input type="submit" value="Uppdatera">

<p>

</form>

 

<% RecSet.Close

Connect.Close %>

 

<p><a href="index.asp?do=789456">Redigera annan post!</a>

 

 

[inlägget ändrat 2006-12-22 00:55:25 av Benghaaa]

[inlägget ändrat 2006-12-22 02:24:06 av Benghaaa]

[inlägget ändrat 2006-12-22 02:25:34 av Benghaaa]

Link to comment
Share on other sites

Styr du upp vad som ska visas med hjälp av if-satser som kollar vilka QueryString som innehåller något värde och vad det värdet är.

Om det inte är tok-mycket kod så lägg in koden för sidan inom LOG-taggarna här i forumet, för det behövs lite mer kod för att kunna förstå hur du gjort.

 

 

Link to comment
Share on other sites

utan man kommer till "index" alltså request.querystring=("DO")= "".

 

det är för att du har

<form method="POST" action="index.asp?do=update">

 

hur ser index.asp sidan ut?

 

Link to comment
Share on other sites

Jag har kopierat i princip rätt av från ASP-guiden här, men ändrat lite adresser osv. så här ser koden ut

 

[log]

<html>

 

<!-- #include virtual="/adovbs.inc" -->

 

<b>Redigera adressboken!</b>

<hr noshade size="1">

 

<% Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\www\redigera\adressbok.mdb"

 

Set RecSet = Server.CreateObject("ADODB.Recordset")

Visa = "SELECT * FROM adressbok ORDER BY Fornamn"

RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>

 

Följande adresser finns att redigera i adresseboken.<p>

 

<ul>

 

<% Do Until RecSet.EOF %>

 

<li><% =RecSet("Fornamn") %>&nbsp;<b><% =RecSet("Efternamn") %></b><br>

<% =RecSet("Adress") %><br>

<a href="default.asp?do=<% =RecSet("ID") %>">Redigera denna adress</a>

<hr noshade size="1" width="250" align="left">

 

<% RecSet.MoveNext

Loop

RecSet.Close %>

<br>

<br>

<br>

<% Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\www\redigera\adressbok.mdb"

 

Set RecSet = Server.CreateObject("ADODB.Recordset")

Visa = "SELECT * FROM adressbok WHERE ID = " & Trim(Request.querystring("do")) & " "

RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>

<br>

<br>

 

 

<form method="POST" action="default.asp?do=update">

 

<input type="hidden" name="AD" value="<% =Request.QueryString("ID") %>">

<input type="text" size="30" name="fornamn" value="<% =RecSet("Fornamn") %>">

<br>

<input type="text" size="30" name="efternamn" value="<% =RecSet("Efternamn") %>">

<p>

<input type="text" size="30" name="adress" value="<% =RecSet("Adress") %>">

<p>

 

<input type="submit" value="Uppdatera">

 

</form>

<% RecSet.Close

Connect.Close %>

 

<p><a href="default.asp">Redigera annan post!</a>

 

</body>

</html>

[/log]

 

och ett exempel finns här: http://benghaa.mine.nu/redigera/default.asp

 

Link to comment
Share on other sites

när jag kollade på den koden upptäckte jag ett par fel. tex du har öppnat 2 connection och bara stängt 1. och i form-tagen använder du post när du i asp "request.querystring", det ska vara "request.form" när man använder post.

 

Link to comment
Share on other sites

vi kan ta ett steg åt taget, jag försökte fixa till din kod, pröva om det fungerar bättre nu:

 

[log]<!-- #include virtual="/adovbs.inc" -->

<html>

<body>

<b>Redigera adressboken!</b>

<hr noshade size="1">

 

<% Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\www\redigera\adressbok.mdb"

 

Set RecSet = Server.CreateObject("ADODB.Recordset")

Visa = "SELECT * FROM adressbok ORDER BY Fornamn"

RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>

 

Följande adresser finns att redigera i adresseboken.<p>

 

<ul>

 

<% Do Until RecSet.EOF %>

 

<li><% =RecSet("Fornamn") %>&nbsp;<b><% =RecSet("Efternamn") %></b><br>

<% =RecSet("Adress") %><br>

<a href="default.asp?id=<% =RecSet("ID") %>">Redigera denna adress</a>

<hr noshade size="1" width="250" align="left">

 

<% RecSet.MoveNext

Loop

RecSet.Close %>

<br>

<br>

<br>

<% if not request.QueryString("id") = "" then

Set RecSet = Server.CreateObject("ADODB.Recordset")

Visa = "SELECT * FROM adressbok WHERE ID = " & Trim(Request.QueryString("id")) & " "

RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>

<br>

<br>

 

 

<form method="POST" action="default.asp?do=update">

 

<input type="hidden" name="AD" value="<% =Request.QueryString("ID") %>">request.

<input type="text" size="30" name="fornamn" value="<% =RecSet("Fornamn") %>">

<br>

<input type="text" size="30" name="efternamn" value="<% =RecSet("Efternamn") %>">

<p>

<input type="text" size="30" name="adress" value="<% =RecSet("Adress") %>">

<p>

 

<input type="submit" value="Uppdatera">

 

</form>

 

<p><a href="default.asp">Redigera annan post!</a>

<% RecSet.Close

end if

Connect.Close %>

</body>

</html>[/log]

 

Link to comment
Share on other sites

Benghaaa skrev:

Nu provade jag codlers kod och fick det inte att bli som jag hade tänkt mig :/

Nej, den kändes inte helt rätt.

 

Jag har snyggat till den samt lagt till lite finesser :)

Gillar tex. inte att använda adovbs.inc

Dessutom lagt till lite felhantering etc.

[log]

[MÄRK]<%[/MÄRK]@LANGUAGE=[GRÅ]"VBSCRIPT"[/GRÅ] CODEPAGE=[GRÅ]"1252"[/GRÅ][MÄRK]%>[/MÄRK]
[MÄRK]<%[/MÄRK]
[color="#0000ff"]Function[/color] sqlTxt(str)
   str=[color="#0000ff"]Trim[/color](str)
   str=[color="#0000ff"]Replace[/color](str, [GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])
   str=[color="#0000ff"]Replace[/color](str, [GRÅ]""[/GRÅ][GRÅ]""[/GRÅ], [GRÅ]""[/GRÅ])   
   sqlTxt=str
[color="#0000ff"]End[/color] [color="#0000ff"]Function[/color]

[color="#0000ff"]Set[/color] conn = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Connection"[/GRÅ])
connStr = [GRÅ]"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\www\redigera\adressbok.mdb"[/GRÅ]
conn.open connStr

myId=sqlTxt([b]Request[/b].QueryString([GRÅ]"id"[/GRÅ]))
[color="#0000ff"]If[/color] [b]Request[/b]([GRÅ]"action"[/GRÅ])<>[GRÅ]"save"[/GRÅ] [color="#0000ff"]Then[/color]
[MÄRK]%>[/MÄRK]
<!DOCTYPE HTML [color="#0000ff"]Public[/color] [GRÅ]"-//W3C//DTD HTML 4.01//EN"[/GRÅ] [GRÅ]"http://www.w3.org/TR/html4/strict.dtd"[/GRÅ]>
<html>
<head>
<meta http-equiv=[GRÅ]"Content-Type"[/GRÅ] content=[GRÅ]"text/html; charset=iso-8859-1"[/GRÅ]>
<title>Redigera</title>
</head>

<body>
<b>Redigera adressboken!</b>
<hr noshade size=[GRÅ]"1"[/GRÅ]>
[MÄRK]<%[/MÄRK]
[color="#0000ff"]If[/color] [b]Request[/b]([GRÅ]"do"[/GRÅ]) = [GRÅ]""[/GRÅ] [color="#0000ff"]Then[/color]
   [color="#0000ff"]Set[/color] objRS = conn.[color="#0000ff"]Execute[/color]([GRÅ]"SELECT id, Fornamn, Efternamn, Adress FROM adressbok ORDER BY Fornamn"[/GRÅ])
   [color="#0000ff"]If[/color] [color="#0000ff"]Not[/color] objRS.EOF [color="#0000ff"]Then[/color]
      [MÄRK]%>[/MÄRK]
      <p>Följande adresser finns att redigera i adressboken.</p>
      <ul>
      [MÄRK]<%[/MÄRK]
      [color="#0000ff"]Do[/color] Until objRS.EOF
         myId=objRS(0)
         strFnamn=objRS(1)
         strEnamn=objRS(2)
         strAdr=objRS(3)
         strFullName=strFnamn&[GRÅ]" "[/GRÅ]&strEnamn      
         [MÄRK]%>[/MÄRK]
         <li><strong>[MÄRK]<%[/MÄRK] =strFullName [MÄRK]%>[/MÄRK]</strong><br>
         [MÄRK]<%[/MÄRK] =strAdr [MÄRK]%>[/MÄRK]<br>
         <a href=[GRÅ]"default.asp?do=edit&id=<%=myId%>"[/GRÅ]>Redigera denna adress »</a>
         <hr noshade size=[GRÅ]"1"[/GRÅ] width=[GRÅ]"250"[/GRÅ] align=[GRÅ]"left"[/GRÅ]></li>      
         [MÄRK]<%[/MÄRK]
         objRS.MoveNext
      [color="#0000ff"]Loop[/color]
      [MÄRK]%>[/MÄRK]
      </ul>
      [MÄRK]<%[/MÄRK]
   [color="#0000ff"]Else[/color]
      [b]Response[/b].Write([GRÅ]"<p>Inga adresser i adressboken.</p>"[/GRÅ])
   [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
   [color="#0000ff"]Set[/color] objRS = [color="#0000ff"]Nothing[/color]
[color="#0000ff"]Else[/color]
   [color="#0000ff"]If[/color] [b]Request[/b]([GRÅ]"do"[/GRÅ]) = [GRÅ]"edit"[/GRÅ] [color="#0000ff"]Then[/color]
      [color="#0000ff"]If[/color] [b]Request[/b]([GRÅ]"updated"[/GRÅ])<>[GRÅ]""[/GRÅ] [color="#0000ff"]Then[/color]
         [color="#0000ff"]If[/color] [b]Request[/b]([GRÅ]"updated"[/GRÅ])=[GRÅ]"true"[/GRÅ] [color="#0000ff"]Then[/color]
            [b]Response[/b].Write([GRÅ]"<p style="[/GRÅ][GRÅ]"font-weight:bold;color:#FF0000;"[/GRÅ][GRÅ]">Adressen uppdaterad!</p>"[/GRÅ])
         [color="#0000ff"]Else[/color]
            [b]Response[/b].Write([GRÅ]"<p style="[/GRÅ][GRÅ]"font-weight:bold;color:#FF0000;"[/GRÅ][GRÅ]">Obligatorisk uppgift saknades!</p>"[/GRÅ])
         [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
      [color="#0000ff"]End[/color] [color="#0000ff"]If[/color] [color="#006400"]'updated<>[GRÅ]""[/GRÅ][/color]
      [color="#0000ff"]Set[/color] objRS = conn.[color="#0000ff"]Execute[/color]([GRÅ]"SELECT Fornamn, Efternamn, Adress FROM adressbok WHERE ID = "[/GRÅ] & myId & [GRÅ]" "[/GRÅ])
      [color="#0000ff"]If[/color] [color="#0000ff"]Not[/color] objRS.EOF [color="#0000ff"]Then[/color]
         [color="#0000ff"]If[/color] [b]Request[/b]([GRÅ]"fornamn"[/GRÅ])<>[GRÅ]""[/GRÅ] [color="#0000ff"]Then[/color] strFnamn=[b]Request[/b]([GRÅ]"fornamn"[/GRÅ]) [color="#0000ff"]Else[/color] strFnamn=objRS(0) [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
         [color="#0000ff"]If[/color] [b]Request[/b]([GRÅ]"efternamn"[/GRÅ])<>[GRÅ]""[/GRÅ] [color="#0000ff"]Then[/color] strEnamn=[b]Request[/b]([GRÅ]"efternamn"[/GRÅ]) [color="#0000ff"]Else[/color] strEnamn=objRS(1) [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
         [color="#0000ff"]If[/color] [b]Request[/b]([GRÅ]"adress"[/GRÅ])<>[GRÅ]""[/GRÅ] [color="#0000ff"]Then[/color] strAdr=[b]Request[/b]([GRÅ]"adress"[/GRÅ]) [color="#0000ff"]Else[/color] strAdr=objRS(2) [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
         [MÄRK]%>[/MÄRK]
         <form method=[GRÅ]"POST"[/GRÅ] action=[GRÅ]"default.asp?action=save"[/GRÅ]>
            <p>Förnamn: <input type=[GRÅ]"text"[/GRÅ] size=[GRÅ]"30"[/GRÅ] name=[GRÅ]"fornamn"[/GRÅ] value=[GRÅ]"<% =strFnamn %>"[/GRÅ]><%IF [b]Request[/b]([GRÅ]"errField"[/GRÅ])= [GRÅ]"fornamn"[/GRÅ] [color="#0000ff"]Then[/color] [b]Response[/b].Write([GRÅ]"<="[/GRÅ]) [color="#0000ff"]End[/color] IF%></p>
            <p>Efternamn: <input type=[GRÅ]"text"[/GRÅ] size=[GRÅ]"30"[/GRÅ] name=[GRÅ]"efternamn"[/GRÅ] value=[GRÅ]"<% =strEnamn %>"[/GRÅ]><%IF [b]Request[/b]([GRÅ]"errField"[/GRÅ])= [GRÅ]"efternamn"[/GRÅ] [color="#0000ff"]Then[/color] [b]Response[/b].Write([GRÅ]"<="[/GRÅ]) [color="#0000ff"]End[/color] IF%></p>
            <p>Adress: <input type=[GRÅ]"text"[/GRÅ] size=[GRÅ]"30"[/GRÅ] name=[GRÅ]"adress"[/GRÅ] value=[GRÅ]"<% =strAdr %>"[/GRÅ]><%IF [b]Request[/b]([GRÅ]"errField"[/GRÅ])= [GRÅ]"adress"[/GRÅ] [color="#0000ff"]Then[/color] [b]Response[/b].Write([GRÅ]"<="[/GRÅ]) [color="#0000ff"]End[/color] IF%></p>
            <input type=[GRÅ]"hidden"[/GRÅ] name=[GRÅ]"id"[/GRÅ] value=[GRÅ]"<% =myId %>"[/GRÅ]>
            <input type=[GRÅ]"submit"[/GRÅ] value=[GRÅ]"Spara"[/GRÅ]>     <input type=[GRÅ]"button"[/GRÅ] value=[GRÅ]"Avbryt"[/GRÅ] onClick=[GRÅ]"location.href='?'"[/GRÅ]>
         </form>
         [MÄRK]<%[/MÄRK]
      [color="#0000ff"]Else[/color]
         [b]Response[/b].Write([GRÅ]"<p>Felaktigt ID!</p>"[/GRÅ])
      [color="#0000ff"]End[/color] [color="#0000ff"]If[/color] [color="#006400"]'objRS.EOF [/color]
      [color="#0000ff"]Set[/color] objRS = [color="#0000ff"]Nothing[/color]
   [color="#0000ff"]End[/color] [color="#0000ff"]If[/color] [color="#006400"]'do=edit[/color]
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color] [color="#006400"]'do=[GRÅ]""[/GRÅ][/color]
[MÄRK]%>[/MÄRK]
</body>
</html>
[MÄRK]<%[/MÄRK]
[color="#0000ff"]Else[/color] [color="#006400"]'action<>[GRÅ]"save"[/GRÅ][/color]
   myId=sqlTxt([b]Request[/b]([GRÅ]"id"[/GRÅ]))
   strFnamn=sqlTxt([b]Request[/b]([GRÅ]"fornamn"[/GRÅ])) 
   strEnamn=sqlTxt([b]Request[/b]([GRÅ]"efternamn"[/GRÅ]))
   strAdr=sqlTxt([b]Request[/b]([GRÅ]"adress"[/GRÅ]))

   nextPage=[GRÅ]"default.asp?do=edit"[/GRÅ]

   [color="#0000ff"]If[/color] myId=[GRÅ]""[/GRÅ] OR strFnamn=[GRÅ]""[/GRÅ] OR strEnamn=[GRÅ]""[/GRÅ] OR strAdr=[GRÅ]""[/GRÅ] [color="#0000ff"]Then[/color]
      [color="#0000ff"]If[/color] strAdr=[GRÅ]""[/GRÅ] [color="#0000ff"]Then[/color] errField=[GRÅ]"adress"[/GRÅ] [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
      [color="#0000ff"]If[/color] strEnamn=[GRÅ]""[/GRÅ] [color="#0000ff"]Then[/color] errField=[GRÅ]"efternamn"[/GRÅ] [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
      [color="#0000ff"]If[/color] strFnamn=[GRÅ]""[/GRÅ] [color="#0000ff"]Then[/color] errField=[GRÅ]"fornamn"[/GRÅ] [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
      qStr=[GRÅ]"&updated=false&errField="[/GRÅ]&errField&[GRÅ]"&id="[/GRÅ]&myId&[GRÅ]"&fornamn="[/GRÅ]&strFnamn&[GRÅ]"&efternamn="[/GRÅ]&strEnamn&[GRÅ]"&adress="[/GRÅ]&strAdr
      nextPage=nextPage&qStr
   [color="#0000ff"]Else[/color]
      strSQL=[GRÅ]"UPDATE adressbok SET Fornamn='"[/GRÅ]&strFnamn&[GRÅ]"', Efternamn='"[/GRÅ]&strEnamn&[GRÅ]"', Adress='"[/GRÅ]&strAdr&[GRÅ]"' WHERE id="[/GRÅ]&myId&[GRÅ]""[/GRÅ]
      conn.[color="#0000ff"]Execute[/color](strSQL)
      nextPage=nextPage&[GRÅ]"&updated=true&id="[/GRÅ]&myId
   [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]

   [b]Response[/b].Redirect(nextPage)
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color] [color="#006400"]'action<>[GRÅ]"save"[/GRÅ][/color]

conn.close
[color="#0000ff"]Set[/color] conn=[color="#0000ff"]Nothing[/color]
[MÄRK]%>[/MÄRK]

[/log]

 

[edit:] Om det blir lite svårt att läsa (och/eller problem med klipp-å-klistra) här så kan du kolla på:

http://eforum.kicks-ass.net/codeview/?file=adressboken.asp'>http://eforum.kicks-ass.net/codeview/?file=adressboken.asp

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

[inlägget ändrat 2007-01-03 02:25:28 av Cluster]

Link to comment
Share on other sites

Tack så mycket för hjälpen :) den var riktigt avancerad den :P jag får sätta mig ikväll och titta på hur den funkar, men tack så mycket !

 

Link to comment
Share on other sites

  • 4 weeks later...

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...