webForumDet fria alternativet

ytterligare en fråga: form som skickar ID

ASP

12 svar · 221 visningar · startad av magnusfeldth

Medlem sedan jan. 20034 480 inlägg
Frågan#1

på sidan https://www.vitatubsockor.nu/arkivet.asp kan ni se hur det ser ut. Så här är läget. Man klickar på en av posterna av de uppräknade och väljer "läs" - då skall man skickas till artikel.asp?id= "och det värdet som posten motsvarar", men problemet är att få den att skicka id-numret.

<% Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("addemalmbergadmin/tubsockan.mdb")

	Set RecSet = Server.CreateObject("ADODB.Recordset")
	SQLsats = "SELECT * FROM sockrates ORDER by ID DESC "
	RecSet.Open SQLsats, Connect, adOpenStatic, adLockOptimistic
%>
            <form name="arkivet" method="post" action="artikel.asp?id=<% = request.form("arkivet") %>">
            <img border="0" src="images/20x10trans.gif"></td>
            <td width="370" bgcolor="#DFE5D1" valign="top">
            <img border="0" src="images/arkivetstor2.gif"><h1 align="center">sortera:<font face="Verdana"> <b> i datumordning</b></font> | i alfabetisk ordning | i
              komplett oordning</h1>
              
                <h1 align="center">
                <select style="width: 366; font-family: Arial; font-size: 10px; background-color: #DFE5D1; border: 1px solid #000000" size=10 name=id>
                <% Do Until RecSet.EOF %> <option VALUE="<% = RecSet("ID") %>"><% = RecSet("Rubrik") %></option>
                <% RecSet.Movenext
loop
Recset.Close
Connect.Close

Set Recset = Nothing
Set Connect = Nothing
%>

                </select><br>
                <input type=submit value="LÄS" style="width: 366; font-family: Verdana; font-size: 10px; background-color: #DFE5D1; font-weight: bold; border: 1px solid #000000; ">
 </h1></form>

felmess på artikel.asp när den skickats dit.

Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'id ='. 

/artikel.asp, line 21

koden på artikel.asp är

<%
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("addemalmbergadmin/tubsockan.mdb")

	Set RecSet = Server.CreateObject("ADODB.Recordset")
	SQLsats = "SELECT * FROM sockrates WHERE id = " &Request.QueryString("id")
	RecSet.Open SQLsats, Connect, adOpenStatic, adLockOptimistic
%>

jag använder en querystring där eftersom man även kan komma dit via att klicka på vanliga länkar som skickar id genom querystrings...

hur skall jag göra?

Medlem sedan nov. 20017 144 inlägg
#2

Skall det inte vara: SQLsats = "SELECT * FROM sockrates WHERE id = " & Request.form("id")

Medlem sedan nov. 20017 144 inlägg
#3

Använder du både och, så ta bort .form
Alltså: Request("id")

Medlem sedan jan. 20034 480 inlägg
#4

i querystringen på artikel.asp?

Medlem sedan nov. 20017 144 inlägg
#5

Här: SQLsats = "SELECT * FROM sockrates WHERE id = " & Request("id")

Medlem sedan jan. 20034 480 inlägg
#6

fortfarande problem, tror det är utformningen på formuläret som inte stämmer... kolla online: https://www.vitatubsockor.nu/arkiv.asp

Medlem sedan nov. 20017 144 inlägg
#7

Värdet i "id" är tomt. Du får kolla vad som händer.
Testa att köra request.form("id") i din sql-sats.,
Varför så här? : action="artikel.asp**?id=<% = request.form("arkivet") %>**"

Medlem sedan jan. 20034 480 inlägg
#8

har testat att köra request.form("id") i artikel.asp.... då kan man läsa artikeln, men uppe i adressfältet står det bara "www.vitatubsockor.nu/artikel.asp?ID= ", och man kan inte gå via de vanliga klicklänkarna...

några idéer hur jag annars kan göra?

"Varför så här? : action="artikel.asp?id=<% = request.form("arkivet") %>"" - för att jag trodde att det skulle fungera... :-) det gjorde det tydligen inte...

Medlem sedan jan. 2001373 inlägg
#9

Testa någon av dessa:

SQLsats = "SELECT * FROM sockrates WHERE id = '"& request.form("id") &'"

oder:


"SELECT * FROM sockrates WHERE ID = " & Trim(Request.form("id")) & " "

Mvh
Martin

Medlem sedan mars 20015 287 inlägg
#10

Kanske:

SQLsats = "SELECT * FROM sockrates WHERE id = " & Cint(Request("id"))

Medlem sedan jan. 20034 480 inlägg
#11

funkar bra vid bara textlänkarna, men den vill inte skriva in nåt id-nummer när man går genom formuläret på arkiv.asp-sidan... kolla länkarna så kanske ni kan komma på nåt...

(ps, god natt, kollar in imorgon igen.)

Medlem sedan jan. 2001373 inlägg
#12

kan du posta html-resultatet ?

Mvh
Martin

Medlem sedan mars 20015 287 inlägg
#13

Ändra i ditt formulär till bara: action="artikel.asp" utan querystring!

265 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)