Just nu i M3-nätverket
Gå till innehåll

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


Benghaaa

Rekommendera Poster

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]

Länk till kommentar
Dela på andra webbplatser

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.

 

 

Länk till kommentar
Dela på andra webbplatser

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?

 

Länk till kommentar
Dela på andra webbplatser

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

 

Länk till kommentar
Dela på andra webbplatser

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.

 

Länk till kommentar
Dela på andra webbplatser

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]

 

Länk till kommentar
Dela på andra webbplatser

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]

Länk till kommentar
Dela på andra webbplatser

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 !

 

Länk till kommentar
Dela på andra webbplatser

  • 4 veckor senare...

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...