Vad gör jag för fel, och hur gör jag det bättre? Jag skulle alltså vilja skicka innehållet i formuläret till databasen, och dessutom se innehållet i formulärfälten. En sorts adminsida hade jag tänkt alltså! :/
Skulle uppskatta om någon vill hjälpa mig på traven! :)
<!-- #include file="adovbs.inc" -->
<%
If Session("login") <> "ok" Then
Session("meddelande") = " utloggad, logga in igen!"
Response.Redirect "utloggad.asp"
End If
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/text.mdb")&";pwd=pwd"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From members Where id = " &Request.QueryString("checkid")
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
If Session("meddelande") <> "" Then
Response.Write Session("meddelande")
Session("meddelande") = ""
End If
If request.querystring("change") = "codes" then
if request.querystring("checkid") = recset("id") then
leftoverone = recset("leftoverone")
leftone = recset("leftone")
leftovertwo = recset("leftovertwo")
lefttwo = recset("lefttwo")
leftoverthree = recset("leftoverthree")
leftthree = recset("leftthree")
recset.update
End If
End If
%>
<html>
<body>
<a href="settings.asp?change=codes&checkid=213">länk</a>
<a href="settings.asp?change=codes&checkid=214">länk</a>
<a href="settings.asp?change=codes&checkid=215">länk</a>
<%
if request.querystring("checkid") = "213" then
%>
<form method="post" name="213" action="settings.asp?change=codes&checkid=213">
<%
elseif request.querystring("checkid") = "214" then
%>
<form method="post" name="214" action="settings.asp?change=codes&checkid=214">
<%
elseif request.querystring("checkid") = "215" then
%>
<form method="post" name="215" action="settings.asp?change=codes&checkid=215">
<%
end if
%>
<input type="text" name="leftoverOne" size="60" value="<%=leftoverone%>">
<textarea cols="45" rows="12" name="leftone"><%=leftone%></textarea>
<input class="input" type="text" name="leftovertwo" size="60" value="<%=leftovertwo%>">
<textarea cols="45" rows="12" name="lefttwo"><%=lefttwo%></textarea>
<input type="text" name="leftoverthree" size="60" value="<%=leftoverthree%>">
<textarea cols="45" rows="12" name="leftthree"><%=leftthree%></textarea>
</form>
</body>
</html>
<%
RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
%>
icaaqMedlem sedan okt. 20005 273 inlägg VAd är det som blir fel ?
Inget syns i formulären, och det funkar inte att posta :/..var ett tag sen jag kollade på asp, tänkte om jag gjort något grundläggande fel, eller glömt något väsentligt?
LAMPMedlem sedan mars 2002777 inlägg Prova med att konvertera (Cstr, Cint, Clng, etc) subtyperna i dina if-satser så du är säker på att de jämförs korrekt.
Kan du ge något litet exempel, är inte riktigt med på vad du menar..
LAMPMedlem sedan mars 2002777 inlägg if Cstr(request.querystring("checkid")) = "213" then
Inget felmeddelande och inget händer:/
Det här är alltså settings.asp, den enda filen.
<!-- #include file="adovbs.inc" -->
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/text.mdb")&";pwd=pwd"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From members Where id = " &Cstr(Request.QueryString("checkid"))
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
If Cstr(request.querystring("change") = "codes") then
if Cstr(request.querystring("checkid") = recset("id")) then
leftoverone = recset("leftoverone")
leftone = recset("leftone")
leftovertwo = recset("leftovertwo")
lefttwo = recset("lefttwo")
leftoverthree = recset("leftoverthree")
leftthree = recset("leftthree")
recset.update
End If
End If
%>
<html>
<body>
<a href="settings.asp?change=codes&checkid=213">länk</a>
<a href="settings.asp?change=codes&checkid=214">länk</a>
<a href="settings.asp?change=codes&checkid=215">länk</a>
<%
if Cstr(request.querystring("checkid") = "213") then
%>
<form method="post" name="213" action="settings.asp?change=codes&checkid=213">
<%
elseif Cstr(request.querystring("checkid") = "214") then
%>
<form method="post" name="214" action="settings.asp?change=codes&checkid=214">
<%
elseif Cstr(request.querystring("checkid") = "215") then
%>
<form method="post" name="215" action="settings.asp?change=codes&checkid=215">
<%
end if
%>
<input type="text" name="leftoverOne" size="60" value="<%=leftoverone%>">
<textarea cols="45" rows="12" name="leftone"><%=leftone%></textarea>
<input class="input" type="text" name="leftovertwo" size="60" value="<%=leftovertwo%>">
<textarea cols="45" rows="12" name="lefttwo"><%=lefttwo%></textarea>
<input type="text" name="leftoverthree" size="60" value="<%=leftoverthree%>">
<textarea cols="45" rows="12" name="leftthree"><%=leftthree%></textarea>
<input type="submit" value="Skicka">
</form>
</body>
</html>
<%
RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
%>
oo
L
/
Första länken till själva sidan <a href="settings.asp?change=codes&checkid=213">redigera</a>, när jag kommer dit vill jag att posterna ska synas, varför gör dom inte det? Någon?
@ndersMedlem sedan juni 200032 969 inlägg Det ser ut som att det är det fetmarkerade nedan det är fel på, så du aldrig kommer in i blocket.
Du kan ta bort de två markerade raderna eftersom du gör den jämförelsen i SQL-frågan.
[b]if Cstr(request.querystring("checkid") = recset("id")) then[/b]
leftoverone = recset("leftoverone")
leftone = recset("leftone")
leftovertwo = recset("leftovertwo")
lefttwo = recset("lefttwo")
leftoverthree = recset("leftoverthree")
leftthree = recset("leftthree")
recset.update
[b]End If[/b]
Dessutom ser det ut som att du gör tilldelningarna åt fel håll om du ska göra en update. Inga förändringar görs med koden ovan.
Mvh,
Jo, nu syns ju i alla fall innehållet i posterna, men när jag skrivit in nya uppgifter och skickar så tar den bara det gamla ur db-n och skriver det igen, innehållet byts inte ut..
Hur skriver jag för att ändringar ska göras då?
@ndersMedlem sedan juni 200032 969 inlägg Istället för att använda recordsetmetoden .update tycker jag att du ska skriva en SQL-fråga som uppdaterar tabellen.
Exempel, om fälten är av taltyp:
StrSQL = "UPDATE Members SET leftoverone = " & variabelsominnehållernågot & ", leftone = " & annanvariabel & " WHERE id = " & Request.QueryString("checkid")
Om text:
StrSQL = "UPDATE Members SET leftoverone = '" & variabelsominnehållernågot & "', leftone = '" & annanvariabel & "' WHERE id = " & Request.QueryString("checkid")
Mvh,
Förstår inte riktigt hur du menar..såhär eller? :r
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/text.mdb")&";pwd=pwd"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From members Where id = " &Cstr(Request.QueryString("checkid"))
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
If Cstr(request.querystring("change") = "codes") then
leftoverone = recset("leftoverone")
leftone = recset("leftone")
leftovertwo = recset("leftovertwo")
lefttwo = recset("lefttwo")
leftoverthree = recset("leftoverthree")
leftthree = recset("leftthree")
StrSQL = "UPDATE Members SET leftoverone = '" & leftoverone & "', leftone = '" & leftone & "' WHERE id = " & Request.QueryString("checkid")
End If
%>
<html>
<body>
<a href="settings.asp?change=codes&checkid=213">länk</a>
<a href="settings.asp?change=codes&checkid=214">länk</a>
<a href="settings.asp?change=codes&checkid=215">länk</a>
<%
if Cstr(request.querystring("checkid") = "213") then
%>
<form method="post" name="213" action="settings.asp?change=codes&checkid=213">
<%
elseif Cstr(request.querystring("checkid") = "214") then
%>
<form method="post" name="214" action="settings.asp?change=codes&checkid=214">
<%
elseif Cstr(request.querystring("checkid") = "215") then
%>
<form method="post" name="215" action="settings.asp?change=codes&checkid=215">
<%
end if
%>
<input type="text" name="leftoverOne" size="60" value="<%=leftoverone%>">
<textarea cols="45" rows="12" name="leftone"><%=leftone%></textarea>
<input class="input" type="text" name="leftovertwo" size="60" value="<%=leftovertwo%>">
<textarea cols="45" rows="12" name="lefttwo"><%=lefttwo%></textarea>
<input type="text" name="leftoverthree" size="60" value="<%=leftoverthree%>">
<textarea cols="45" rows="12" name="leftthree"><%=leftthree%></textarea>
<input type="submit" value="Skicka">
</form>
</body>
</html>
<%
RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
%>
@ndersMedlem sedan juni 200032 969 inlägg Du måste exekvera SQL-frågan också:
StrSQL = "UPDATE Members SET leftoverone = '" & leftoverone & "', leftone = '" & leftone & "' WHERE id = " & Request.QueryString("checkid")
Connect.Execute strSQL,,128
Om du ska uppdatera med de där värdena så händer ingenting, eftersom det är de värdena som var i databasen från början.
Vad är det för värden du ska uppdatera med, och var kommer de ifrån?
emissionMedlem sedan dec. 19996 721 inlägg .....och du ska inte köra CStr så där... Flytta parenteserna :)
Ex:
if Cstr(request.querystring("checkid")) = "213" then
Det är ju det jag skriver i formuläret som jag vill byta ut mot det gamla i posterna/kolumnerna i db-n..
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/text.mdb")&";pwd=pwd"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From members Where id = " &Cstr(Request.QueryString("checkid"))
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
If Cstr(request.querystring("change")) = "codes" then
leftoverone = recset("leftoverone")
leftone = recset("leftone")
leftovertwo = recset("leftovertwo")
lefttwo = recset("lefttwo")
leftoverthree = recset("leftoverthree")
leftthree = recset("leftthree")
StrSQL = "UPDATE Members SET leftoverone = '" & leftoverone & "', leftone = '" & leftone & "' WHERE id = " & Request.QueryString("checkid")
Connect.Execute strSQL,,128
End If
%>
<html>
<body>
<a href="settings.asp?change=codes&checkid=213">länk</a>
<a href="settings.asp?change=codes&checkid=214">länk</a>
<a href="settings.asp?change=codes&checkid=215">länk</a>
<%
if Cstr(request.querystring("checkid")) = "213" then
%>
<form method="post" name="213" action="settings.asp?change=codes&checkid=213">
<%
elseif Cstr(request.querystring("checkid")) = "214" then
%>
<form method="post" name="214" action="settings.asp?change=codes&checkid=214">
<%
elseif Cstr(request.querystring("checkid")) = "215" then
%>
<form method="post" name="215" action="settings.asp?change=codes&checkid=215">
<%
end if
%>
<input type="text" name="leftoverOne" size="60" value="<%=leftoverone%>">
<textarea cols="45" rows="12" name="leftone"><%=leftone%></textarea>
<input class="input" type="text" name="leftovertwo" size="60" value="<%=leftovertwo%>">
<textarea cols="45" rows="12" name="lefttwo"><%=lefttwo%></textarea>
<input type="text" name="leftoverthree" size="60" value="<%=leftoverthree%>">
<textarea cols="45" rows="12" name="leftthree"><%=leftthree%></textarea>
<input type="submit" value="Skicka">
</form>
</body>
</html>
<%
RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
%>
emissionMedlem sedan dec. 19996 721 inlägg i den här delen:
Addera = "Select * From members Where id = " &Cstr(Request.QueryString("checkid"))
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
If Cstr(request.querystring("change")) = "codes" then
leftoverone = recset("leftoverone")
leftone = recset("leftone")
leftovertwo = recset("leftovertwo")
lefttwo = recset("lefttwo")
leftoverthree = recset("leftoverthree")
leftthree = recset("leftthree")
StrSQL = "UPDATE Members SET leftoverone = '" & leftoverone & "', leftone = '" & leftone & "' WHERE id = " & Request.QueryString("checkid")
Connect.Execute strSQL,,128
End If
...så plockar du ut data från databasen, och stoppar i den igen på samma ställe. Lite onödigt...
Är det inte meningen att du ska ta från formuläret, med:
leftoverone = request("leftoverone")
osv.
?
Hmm, jo, jag har nog snurrat till det verkar det som.. :l
Det är nog meningen, hur ska jag lägga upp det istället då?
Jag som inte kan nått om det här blir alldelles snurrig av alla koder, kan ingen skriva efter varje rad:
'Förklaring vad denna rad gör
så vi andra kan lära oss av detta?
emissionMedlem sedan dec. 19996 721 inlägg Kanske så här:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/text.mdb")&";pwd=pwd"
If Cstr(request.querystring("change")) = "codes" then
leftoverone = replace(request("leftoverone"),"'","''")
leftone = replace(request("leftone") ,"'","''")
leftovertwo = replace(request("leftovertwo"),"'","''")
lefttwo = replace(request("lefttwo") ,"'","''")
leftoverthree = replace(request("leftoverthree"),"'","''")
leftthree = replace(request("leftthree") ,"'","''")
strSQL = "UPDATE Members SET " & _
"leftoverone = '" & leftoverone & "', leftone = '" & leftone & "'," & _
"leftovertwo = '" & leftovertwo & "', lefttwo = '" & lefttwo & "'," & _
"leftoverthree = '" & leftoverthree & "', leftthree = '" & leftthree & "'," & _
"WHERE id = " & Request.QueryString("checkid")
Connect.Execute strSQL,,128
End If
Set RecSet = Server.CreateObject("ADODB.Recordset")
strSQL = "Select * From members Where id = " & Request.QueryString("checkid")
RecSet.Open strSQL, Connect, adOpenStatic, adLockOptimistic
if not RecSet.EOF then
%>
<html>
<body>
<a href="settings.asp?change=codes&checkid=213">länk</a>
<a href="settings.asp?change=codes&checkid=214">länk</a>
<a href="settings.asp?change=codes&checkid=215">länk</a>
<form method="post" name="213" action="settings.asp?change=codes&checkid=<%=request.querystring("checkid")%>">
<input type="text" name="leftoverOne" size="60" value="<%=RecSet("leftoverone")%>">
<textarea cols="45" rows="12" name="leftone"><%=RecSet("leftone")%></textarea>
<input class="input" type="text" name="leftovertwo" size="60" value="<%=RecSet("leftovertwo")%>">
<textarea cols="45" rows="12" name="lefttwo"><%=RecSet("lefttw")o%></textarea>
<input type="text" name="leftoverthree" size="60" value="<%=RecSet("leftoverthree")%>">
<textarea cols="45" rows="12" name="leftthree"><%=RecSet("leftthree")%></textarea>
<input type="submit" value="Skicka">
</form>
</body>
</html>
<%
End If
RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
%>
Kanon med så mycket hjälp, får ett fel dock:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i UPDATE-uttryck.
settings.asp, rad 23
och rad 23 är:
Connect.Execute strSQL,,128