Lägg med ID som ett hidden-fält i ditt formulär.
------------------
essentitia preter non sans multiplicandum
21 svar · 325 visningar · startad av Hallgren
Ok!
Jag hämtar info från en db så här:
<% Set Connect = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\inetpub\wwwroot\rhodos\pizzaupdate\info.mdb"
SQL = "SELECT pizza AS x FROM pizza"
rs.Open SQL, Connect
%>
<form method="post" action="pizza-redigera.asp">
<select name="pizza">
<%
Do While Not rs.EOF
%>
<option value="<%=rs("x")%>" name="val"><%=rs("x")%> </option>
<%
rs.MoveNext
Loop
Connect.Close
%>
<br>
<input type="submit" value="hämnta" style="{font-family:verdana; font-size:10px;}">
</form>
Tar emot infot så här:
<% Set Connect = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\inetpub\wwwroot\rhodos\pizzaupdate\info.mdb"
SQL = "SELECT * FROM pizza WHERE pizza ='" & Request("x") & "'"
rs.Open SQL, Connect
%>
<form method="post" action="pizza-redigeraexe.asp">
<input type="text" name="pizza" value='<%=rs("pizza")%>'>
<input type="text" name="tillbehor" value='<%=rs("tillbehor")%>'>
<input type="text" name="barn" value='<%=rs("barn")%>'>
<input type="text" name="norm" value='<%=rs("norm")%>'>
<input type="text" name="fam" value='<%=rs("fam")%>'>
<input type="submit" value="lägg till">
</form>
Nu ska vi redigera lite:
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\inetpub\wwwroot\rhodos\pizzaupdate\info.mdb"
pizza = Trim(Request.Form("pizza"))
tillbehor = Trim(Request.Form("tillbehor"))
barn = Trim(Request.Form("barn"))
norm = Trim(Request.Form("norm"))
fam = Trim(Request.Form("fam"))
SQL = "update pizza set pizza = '" & pizza & "', tillbehor = '" & tillbehor & "', barn = '" & barn & "', norm = '" & norm & "', fam = '" & fam & "'"
SQL = SQL & " where id = '" & Request("")
Connect.Execute(SQL)
%>
Men vet inte hur jag ska göra efter Where id = :( Så att den uppdaterar rätt ID.
Lösning?
------------------
Forumledare, webForum
Lägg med ID som ett hidden-fält i ditt formulär.
------------------
essentitia preter non sans multiplicandum
Och sedan köra
SQL = SQL & " where id = '" & Request("ID")
Eller ska jag köra med Request.Form?
------------------
Forumledare, webForum
Hej!
med: Request.Form("Id") då är du säker på att den tar requesterna i rätt ordning och så slipper den leta reda på vilken reguest du menar.
r: Id är väl ett numeriskt fält, då bör det se ut så här:
SQL = SQL & " where id = " & Request.Form("ID")
alltså utan '
mvh Jörgen
------------------
// Fin signatur
Jorgen hp = new Jorgen(this);
[Redigerat av jorgen den 24 aug 2001]
Oki, men kan någon förklara hur det här hidden-fält fungerar? Lite nyfiken på hur det kan komma ihåg rätt ID. :)
------------------
Forumledare, webForum
SQL = SQL & " where id = " & Request.form("ID")
(Du hade en apostrof för mycket)
Form är inte nödvändigt att ha med, men jag tycker att man skall ange det.
------------------
essentitia preter non sans multiplicandum
Hej!
Du skickar ju med ett specifikt Id från din SELECT på sidan innan. Alltså får du det Id du hämtade på sidan innan.
<input type="HIDDEN" value="<%=rs("Id")%>" name="Id">
Ps. Grattis till 1500 inlägg LarsG :)
mvh Jörgen
------------------
// Fin signatur
Jorgen hp = new Jorgen(this);
[Redigerat av jorgen den 24 aug 2001]
<input type= hidden name=id value=<%=rs("id"%>>
------------------
essentitia preter non sans multiplicandum
Jepps, men en > för lite :)
mvh Jörgen
------------------
// Fin signatur
Jorgen hp = new Jorgen(this);
Får Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record. :(
<form method="post" action="pizza-redigeraexe.asp">
<input type="text" name="pizza" value='<%=rs("pizza")%>'>
<input type="text" name="tillbehor" value='<%=rs("tillbehor")%>'>
<input type="text" name="barn" value='<%=rs("barn")%>'>
<input type="text" name="norm" value='<%=rs("norm")%>'>
<input type="text" name="fam" value='<%=rs("fam")%>'>
<input type= "hidden" name="id" value='<%=rs("id")%>'>
<input type="submit" value="lägg till">
</form>
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\inetpub\wwwroot\rhodos\pizzaupdate\info.mdb"
pizza = Trim(Request.Form("pizza"))
tillbehor = Trim(Request.Form("tillbehor"))
barn = Trim(Request.Form("barn"))
norm = Trim(Request.Form("norm"))
fam = Trim(Request.Form("fam"))
SQL = "update pizza set pizza = '" & pizza & "', tillbehor = '" & tillbehor & "', barn = '" & barn & "', norm = '" & norm & "', fam = '" & fam & "'"
SQL = SQL & " where id = " & Request.form("ID")
Connect.Execute(SQL)
%>
------------------
Forumledare, webForum
[Redigerat av Hallgren den 24 aug 2001]
Hej!
Heter fältet ID eller id?
kan vara kinkigt ibland, verkar som inte den kan hitta den Posten med det Id:et.
mvh Jörgen
------------------
// Fin signatur
Jorgen hp = new Jorgen(this);
SQL = "SELECT * FROM pizza WHERE pizza ='" & Request("x") & "'"
Står inte X för ID i den första koden jag skrev?
Fältet heter id.
------------------
Forumledare, webForum
din select-tagg heter ju pizza, då är det pizza du ska requesta in.
------------------
mördar-anders, det är jag.
Nu fungerar inget! :e :e
Man kan bli tokig på mindre. Hehe!
------------------
Forumledare, webForum
Data type mismatch in criteria expression.
<% Set Connect = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\inetpub\wwwroot\rhodos\pizzaupdate\info.mdb"
SQL = "SELECT * FROM pizza WHERE id ='" & Request("id") & "'"
rs.Open SQL, Connect
%>
<form method="post" action="pizza-redigeraexe.asp">
<input type="text" name="pizza" value='<%=rs("pizza")%>'>
<input type="text" name="tillbehor" value='<%=rs("tillbehor")%>'>
<input type="text" name="barn" value='<%=rs("barn")%>'>
<input type="text" name="norm" value='<%=rs("norm")%>'>
<input type="text" name="fam" value='<%=rs("fam")%>'>
<input type="submit" value="lägg till">
</form>
Använder nu..
SQL = "SELECT pizza AS id FROM pizza"
rs.Open SQL, Connect
Och min select heter id.
------------------
Forumledare, webForum
Hej!
SQL = "SELECT * FROM pizza WHERE id =" & Request("id") & ""
rs.Open SQL, Connect
tog bort 2 '
------------------
// Fin signatur
Jorgen hp = new Jorgen(this);
Too few parameters. Expected 1.
Tror det är dags att stänga av och bege sig hemåt. :l
------------------
Forumledare, webForum
Hej!
Du måste på något sätt stava fel till fältnamnen eller efterfråga fel fält.
Kolla så fältnamnen är rättstavade och att det är rätt fält du jämför med.
mvh Jörgen
------------------
// Fin signatur
Jorgen hp = new Jorgen(this);
Vad är det för id som du vill spara?
är det id'et för pizzan eller id för presonen som beställer?
Känns som att det är ngn som snackar katter och andra hundar ;)
cya,
PatrikB
------------------
*ordning och reda!, pengar på fredag.*