Avatar billede sapworld Nybegynder
10. februar 2005 - 08:15 Der er 15 kommentarer og
1 løsning

Tælle "klik" på et link

Hej

Jeg bruger asp og access database på min website. Er det en nem måde man kan tælle hvor mange gange der bliver "klikket" på et link.

Evt. ved at oprette en entry i databasen, når man klikker på linket. Det der er problemet for mig er, at man sendes væk fra websiten, når man klikker på linket, så jeg kan ikke bare sætte kode ind på den side man kommer til, eller bruge et statestik værktøj.

/Kim
Avatar billede anhansen Nybegynder
10. februar 2005 - 08:36 #1
Du kan måske gøre det via javascript og et onclick event.
Men jeg er ikke så skarp til javascript til db. Men det var måske en mulighed.

En anden mulighed kunnne være at lave en "loadlink" side hvor du giver siden med som parameter.
Altså hvor link bliver noget med:
<a href="loadlink.asp?link=http://www.google.dk">www.google.dk</a>
og så på loadlink siden kan du gemme info om det link der er trykket på.

Det kunne være en fremgangsmåde...
Avatar billede alister_crowley Nybegynder
10. februar 2005 - 08:44 #2
Nu kan javascript ikke snakke sammen med database, men anhansen er inde på noget af det rigtige

prøv noget lign dette her

<a href="loadlink.asp?link=http://www.google.dk">www.google.dk</a>

[loadlink.asp]
<%
Dim Link
Link = request.querystring("link")

// opdater database stuff her

Response.Redirect(Link)

%>
Avatar billede burningice Nybegynder
10. februar 2005 - 09:06 #3
ac>> næh, men man kan via noget xmlhttp i javascript kalde en side, f.eks. opdaterlink.asp?link=www.google.dk


Meget stærkt simplificeret psuodo-kode:
onClick() {

str link = // få fat i linket
xmlhttp = // opret xmlhttp-object

xmlhttp.send(opdaterlink.asp?link='+ link);

}
Avatar billede anhansen Nybegynder
10. februar 2005 - 09:08 #4
Det er en elegant løsning cyberfessor - din ide vil betyde at man stadig ser www.google.dk når man kører over linket vil det ikke?

Og på den måde "skjule" mere at man laver noget arbejde ved klik på linket?
Avatar billede alister_crowley Nybegynder
10. februar 2005 - 09:33 #5
cyberfesser, hvad er pointen i at sætte et javascript til at lave unødvendigt arbejde ?
når folk alligevel skal redirectes bagefter.
Avatar billede sapworld Nybegynder
10. februar 2005 - 11:00 #6
Kunne en af jer kommer med et kode eksempel?

Linket: http://www.google.dk
Link ID: Google
Tabel i database: count
/kim
Avatar billede alister_crowley Nybegynder
10. februar 2005 - 11:24 #7
<a href="loadlink.asp?link=http://www.google.dk">www.google.dk</a>

[loadlink.asp]
<%
Dim Link
Link = request.querystring("link")

// database connect her, det ved du forhåbenlig godt hvordan

strSQL = "UPDATE count SET antalklik=antalklik+1 WHERE link ='" & link & "'"
Conn.Execute(strSQL)

Response.Redirect(Link)
%>

Det kræver at du har en tabel som ser sådan her ud

| antalklik(INT) | Link |
| 0 | http://www.google.com |
Avatar billede sapworld Nybegynder
10. februar 2005 - 14:24 #8
Hej Alister

Det funker bare - poster du et svar :)

Tak for hjælpen

/Kim
Avatar billede anhansen Nybegynder
10. februar 2005 - 14:49 #9
svar
Avatar billede burningice Nybegynder
10. februar 2005 - 15:47 #10
ac>> ideen er jo netop at folk IKKE (!!!!) skal redirectes.

man laver en normal <a href="google.com" onClick="opdaterlink(this);">google</a>

opdaterLink(obj) {

str link = obj.Href;
xmlhttp = // opret xmlhttp-object

xmlhttp.send(opdaterlink.asp?link='+ link);

}

og hvis man ikke vil opdatere en tæller mere fjerner man bare sin onClick, og alt fungerer stadigvæk som det skal.
Avatar billede burningice Nybegynder
10. februar 2005 - 15:50 #11
i teorien sparer det faktisk serveren for lidt trafik

istedet for

client -> server -> client -> ekstern server

bliver det

client -> server -> ekstern server

idet at serveren ikke behøves at fortælle klienten hvor den skal hen, det ved den jo godt allerede.
Avatar billede sapworld Nybegynder
10. februar 2005 - 17:00 #12
cyberfessir: Hvordan kommer koden til at se ud når man opsamler det i en access database???
/Kim
Avatar billede burningice Nybegynder
10. februar 2005 - 18:10 #13
på serversiden skal det være det samme som din loadlink.asp, bortset fra den sidste Response.Redirect
Avatar billede alister_crowley Nybegynder
11. februar 2005 - 21:24 #14
Nej tak, jeg samler ikke på points.

cyberfessor, men er din xmlhttp løsning ikke IE only ?
Avatar billede burningice Nybegynder
11. februar 2005 - 22:22 #15
ac>> nope... den virker i alle browsere... jeg skal så ikke kunne sige om det er på Windows platformen kun, men det er samme trick google f.eks. bruger til deres "search ahead"-funktion (http://www.google.com/webhp?complete=1&hl=en)
Avatar billede sapworld Nybegynder
02. juni 2005 - 15:40 #16
Takker

/Kim
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester