webForumDet fria alternativet

kolla länk med cookies?

ASP

24 svar · 373 visningar · startad av clacke

Medlem sedan feb. 2003234 inlägg
Frågan#1

Jag vill kolla på en länksida som går till en detaljsida om användaren har klickat på länken eller ej.
På detaljsidan så sätter jag en cookie som är lika med länkens id.

Jag vill nu kolla om länkarna på länksidan har blivit klickad på eller ej, och om länken har blivit klickad på så ska länken ändra färg.

Hur löser jag detta på bästa sätt?

Tacksam för förslag!

Medlem sedan jan. 20032 285 inlägg
#2

Om du lägger in id:na i cookien med mellanslag mellan varandra, och att systemet är databasdrivet (vilket jag antar) så kan du göra såhär:

arrKlickat = Split(Request.Cookies("klickat"))

Do Until objRS.EOF
  blnKlickat = False
  For i = 0 To UBound(arrKlickat)
    If objRS("linkid") = arrKlickat(i) Then blnKlickat = True
  Next

  If blnKlickat Then
    Response.Write("<a href=""" & objRS("adress") & """ target=""_blank"" style=""color: #0000BB"">" & objRS("link") & "</a><br>")
  Else
    Response.Write("<a href=""" & objRS("adress") & """ target=""_blank"" style=""color: #00BB00"">" & objRS("link") & "</a><br>")
  End If

  objRS.MoveNext
Loop
Medlem sedan feb. 2003234 inlägg
#3

Får det inte att funka riktigt. Vad gör jag för fel?
På detaljsidan som sätter cookien ser det ut så här:

response.cookies("agreement")= rs("agreement_id")

och på sidan som listar alla länkarna ser det ut så här i bodyn:

<% arrKlickat = Split(Request.Cookies("agreement"))

Do Until rs.EOF
  blnKlickat = False
  For i = 0 To UBound(arrKlickat)
    If rs("agreement_id") = arrKlickat(i) Then blnKlickat = True
  Next

  If blnKlickat Then %>
   <a href="list_detail.asp?id=<%=rs("supplier_id")%>" style="color: #0000BB"><%=rs("supplier")%></a><br>
  <%Else%>
 <a href="list_detail.asp?id=<%=rs("supplier_id")%>" style="color: #00BB00"><%=rs("supplier")%></a><br>
 <% End If

  rs.MoveNext
Loop %>
Medlem sedan jan. 20032 285 inlägg
#4
response.cookies("agreement") = Request.Cookies("agreement") & " " & rs("agreement_id")
Medlem sedan feb. 2003234 inlägg
#5

:-) funkar inte iallafall.
Jag la in den sista responsen på detalj sidan, rätt? Tror jag!
Men länkarna är bara gröna hela tiden, ingen förändring.

Medlem sedan jan. 20032 285 inlägg
#6

Om du gör såhär då?

response.cookies("agreement") = Request.Cookies("agreement") & " " & Request.QueryString("agreement")

<% arrKlickat = Split(Request.Cookies("agreement"))

Do Until rs.EOF
  blnKlickat = False
  For i = 0 To UBound(arrKlickat)
    If rs("agreement_id") = arrKlickat(i) Then blnKlickat = True
  Next

  If blnKlickat Then %>
   <a href="list_detail.asp?id=<%=rs("supplier_id")%>&agreement=<%=rs("agreement_id")%>" style="color: #0000BB"><%=rs("supplier")%></a><br>
  <%Else%>
 <a href="list_detail.asp?id=<%=rs("supplier_id")%>&agreement=<%=rs("agreement_id")%>" style="color: #00BB00"><%=rs("supplier")%></a><br>
 <% End If

  rs.MoveNext
Loop %>
Medlem sedan feb. 2003234 inlägg
#7

Nej, tyvärr!
Funkar ej.
Ingen förändring.

Medlem sedan jan. 20032 285 inlägg
#8

Hur ser cookien ut om du skriver ut den i webbläsaren?

Medlem sedan feb. 2003234 inlägg
#9

Den lägger till agreement idet varje gång man klickar på länken.

Medlem sedan jan. 20032 285 inlägg
#10

Ja, men hur ser den ut?

Medlem sedan feb. 2003234 inlägg
#11

Skriver ut den så här:

response.write request.cookies("agreement")
och resultatet blir:
82 82 74 82 74
Medlem sedan feb. 2003234 inlägg
#12

Tänkte att iom att jag får agreement_idet på listsidan så kunde jag ju bara kolla det med rs("agreement_id"), men jag gör något fel?

response.write request.cookies("agreement")
	if request.cookies("agreement") = rs("agreement_id") then
	response.write "klickad på"
	else
	response.write "inte klickad på"
	end if
Medlem sedan dec. 20003 887 inlägg
#13

Hur ser din SQL-sats ut som då?

Medlem sedan feb. 2003234 inlägg
#14

Så här ser sql satsen ut på listsidan:

sql = "SELECT * FROM supplier s,agree a, category c where s.session_id=a.session_id and a.category_id=c.category_id order by datumet,supplier DESC;"
	set rs = conn.Execute (sql)
Medlem sedan jan. 20032 285 inlägg
#15

Kan det kanske möjligen hjälpa om du skriver såhär?

<% arrKlickat = Split(Request.Cookies("agreement"))

Do Until rs.EOF
  blnKlickat = False
  For i = 0 To UBound(arrKlickat)
    If CInt(rs("agreement_id")) = CInt(arrKlickat(i)) Then blnKlickat = True
  Next

  If blnKlickat Then %>
   <a href="list_detail.asp?id=<%=rs("supplier_id")%>" style="color: #0000BB"><%=rs("supplier")%></a><br>
  <%Else%>
 <a href="list_detail.asp?id=<%=rs("supplier_id")%>" style="color: #00BB00"><%=rs("supplier")%></a><br>
 <% End If

  rs.MoveNext
Loop %>
Medlem sedan feb. 2003234 inlägg
#16

Får felmeddelande:

Inkompatibla typer: 'Cint'
på raden:
If CInt(rs("agreement_id")) = CInt(arrKlickat(i)) Then blnKlickat = True
Medlem sedan jan. 20032 285 inlägg
#17

Så här då? :)

<% arrKlickat = Split(Request.Cookies("agreement"))

Do Until rs.EOF
  blnKlickat = False
  For i = 0 To UBound(arrKlickat) - 1
    If CInt(rs("agreement_id")) = CInt(arrKlickat(i)) Then blnKlickat = True
  Next

  If blnKlickat Then %>
   <a href="list_detail.asp?id=<%=rs("supplier_id")%>" style="color: #0000BB"><%=rs("supplier")%></a><br>
  <%Else%>
 <a href="list_detail.asp?id=<%=rs("supplier_id")%>" style="color: #00BB00"><%=rs("supplier")%></a><br>
 <% End If

  rs.MoveNext
Loop %>
Medlem sedan feb. 2003234 inlägg
#18

Som det var innan så fick jag ju ut cookien agreement att den hade flera idnummer, den la ju till ett nytt nr varje gång som man klickde på länken, och det var ju rätt ageement nummer.

Kan man inte då kolla att om cookien är lika med rs("agreement_id") då ska det hända något
annars
inget
slut

Skulle man inte kunna göra så här?

Medlem sedan feb. 2003234 inlägg
#19

Tyvärr inte :-)

Medlem sedan feb. 2003234 inlägg
#20

Fortfarande fel:


    If CInt(rs("agreement_id")) = CInt(arrKlickat(i)) Then blnKlickat = True
258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)