Jag har en funktion där jag använder mig av cookies för att se om man har klickat på en länk eller inte. Varför vill du ladda om redirectsidan? Hm, alltså det är inte redirect sidan som jag vill ladda om, utan sidan som visar mina länkar. kan du inte göra något såhär när du kommer tillbaka till länksidan Jag tror du missförstod honom Joacim. Hej och tack för svar. Nej tvärr, åtminstone inte utan att göra massor med krångliga omvägar som bara skapar jobbiga bieffekter på din sida. Ja, nu så funkar det mycket bättre när jag la in koden du angav.Ladda om sida vid klick på länk
Själva länkkoden ser ut så här:
<code>
<%
If Request.Cookies ("MYCOOKIE")("Link1") = "" Then%>
<li>Länk</li>
<%End If%>
</code>
På sidan som man skickas till, så skapas själva cookien.
Men, om jag vill att sidan med länken skall laddas om när man har skapat cookien, hur gör jag då?Sv: Ladda om sida vid klick på länk
Varför inte först, kontrollera om kaka finns, om ja skapa, sedan redirect till länken
Annars kan du kolla upp request.servervariables("http_referer") så får du adressen till förgående sida.Sv:Ladda om sida vid klick på länk
Det ser alltså ut så här:
Länksidan:
<code>
<ul>
<%
If Request.Cookies ("MYCOOKIE")("Link1") = "" Then%>
<li>Länk 1</li>
<%End If%>
<%
If Request.Cookies ("MYCOOKIE")("Link2") = "" Then%>
<li>Länk 2</li>
<%End If%>
<%
If Request.Cookies ("MYCOOKIE")("Link3") = "" Then%>
<li>Länk 3</li>
<%End If%>
<%
If Request.Cookies ("MYCOOKIE")("Link4") = "" Then%>
<li>Länk 4</li>
<%End If%>
<%
If Request.Cookies ("MYCOOKIE")("Link5") = "" Then%>
<li>Länk 5</li>
<%End If%>
</ul>
</code>
Sen så kommer man till sidan där cookien skapas och där man skickas till själva url:en.
<code>
<%
link = request.querystring("link")
if link = 1 then
Response.Cookies ("MYCOOKIE")("Link1") = "Yes"
Response.Cookies ("MYCOOKIE").Expires = DATE + 14
response.redirect "http://..."
elseif link = 2 then
Response.Cookies ("MYCOOKIE")("Link2") = "Yes"
Response.Cookies ("MYCOOKIE").Expires = DATE + 14
response.redirect "http://..."
elseif link = 3 then
Response.Cookies ("MYCOOKIE")("Link3") = "Yes"
Response.Cookies ("MYCOOKIE").Expires = DATE + 40
response.redirect "http://..."
elseif link = 4 then
Response.Cookies ("MYCOOKIE")("Link4") = "Yes"
Response.Cookies ("MYCOOKIE").Expires = DATE + 45
response.redirect "http://..."
elseif link = 5 then
Response.Cookies ("MYCOOKIE")("Link5") = "Yes"
Response.Cookies ("MYCOOKIE").Expires = DATE + 45
response.redirect "http://..."
end if
%>
</code>
Det jag menar är hur kan jag göra för att ladda om sidan med länkar när man har klickat på en länk, så att själva länken inte visas med tanke på att man redan har klickat en gång på den?Sv: Ladda om sida vid klick på länk
<code>
<%
If Request.Cookies ("MYCOOKIE")("Link1") = "" Then%>
<li>Länk 1</li>
else response.write "" '<----är cookien blank så skriver den ut länken, annars ingenting.
<%End If%>
<%
</code>Sv: Ladda om sida vid klick på länk
Lari du kan göra såhär:
<code>
Länk 4
</code>
Men att ladda om hela sidn för att dölja en länk är onödigt, om det bara är det du vill kan du göra så här:
<code>
Länk 4
</code>
Har inte testat koden så kan hända att det inte fungerar.Sv:Ladda om sida vid klick på länk
Det funkade nästan som du skrev med location.reload(true);
Länken försvinner nämligen andra gången man klickar, men inte första, vilket jag antar beror på att när jag klickar på länken, så laddas sidan om innan cookien har skapats.
Så, frågan är hur jag kan ladda om sidan efter att cookien har skapats.
Det går inte att lägga in någon kod som tvingar fram en reload i själva koden som skapar cookien?Sv: Ladda om sida vid klick på länk
Dina alternativ är nog att
a. Bara gömma länken när man klickat
b. Sätt en timeout så sidan som innehåller länken inte reloadas direkt utan efter t.ex. en sekund.
Det senare alternativet skulle se ut ungefär såhär:
<code>
Länk 4
</code>Sv:Ladda om sida vid klick på länk
Många tack, det är precis så som jag vill att det ska funka!