Avatar billede RasmusRR Nybegynder
26. marts 2011 - 22:53 Der er 7 kommentarer og
1 løsning

Kør script uden at hente side

Jeg vil gerne lave en tæller, der laver en post i min database, hver gang der klikkes på et billede.

Jeg har forsøgt med at ligge en onclick på billedet. Den henter så en side, hvor jeg har mit script til at lægge på databasen.

Er der en måde, hvor jeg undgår at der bliver åbnet en tom side hos brugeren, når jeg gør det på denne måde? eller er der en anden mere smart måde at gøre det på?
Avatar billede tjens Nybegynder
26. marts 2011 - 23:11 #1
Ja: Du kan bruge AJAX til at kontakte din serverside (fra javascript i browseren)
Avatar billede RasmusRR Nybegynder
27. marts 2011 - 14:00 #3
Jeg har rodet lidt rundt på nettet, men kan stadig ikke finde hoved og hale i AJAX :-(

Kan I hjælpe med at omskrive følgende database opkobling til AJAX?

Mvh
Rasmus

Set objConn = Server.CreateObject("ADODB.Connection")
ConnDSN = "Driver={MySQL ODBC 3.51 Driver}; Server=" & SQLserveradr & "; Database=" & SQLdatabase & "; UID=" & SQLlogin & "; PWD=" & SQLPassword & ";"
ObjConn.Open ConnDSN

strSQL = "insert into taeller (dato, ark) values (Now(),"
strSQL = strSQL & "'" & Request("opg") & "'"
strSQL = strSQL & ")"

ObjConn.Execute(strSQL)

Set rs = Nothing
Call CloseConn1
Avatar billede tjens Nybegynder
27. marts 2011 - 18:31 #4
Din ASP-kode skal ligge på serveren som den plejer, og behøver ikke ændres.

Forskellen fra dit nuværende kode er, at du ikke skal linke til siden med din databaseopdatering, men i stedet køre noget javascript, som via XMLHttpRequest henter siden i baggrunden.

Dit serverscript kan i princippet ikke se forskel.

Så du skal læse om XMLHttpRequest,
og så lave din onclick om til et kald af en javascript funktion, der kalder din databaseopdateringsside.

Da du selv skal programmere, hvad javascriptet skal gøre, når din side med databaseopdatering er hentet, kan du lade være med at gøre noget.
Dermed bliver kaldet til optællingssiden usynligt for brugeren der klikker på billedet.
Husk dette når du læser de første tutorials, da det ofte er den sværeste del, at gøre noget med selve svaret. Det kan du springe over.
Avatar billede RasmusRR Nybegynder
28. marts 2011 - 20:56 #5
Kan jeg få et eksempel på hvordan man kalder en side med XMLHttpRequest?

Er ikke stærk nok i Javascript/AJAX til at kunne finde rundt i det jeg har googlet mig frem til :-(
Avatar billede tjens Nybegynder
28. marts 2011 - 21:32 #6
Der er en lille demo her: http://tjens.dk/eksperten/php/AjaxPostForm932527.html

Højreklik for at se javascript koden.

Serversiden der kaldes i eksemplet, modtager bare de 2 felter, og sender dem tilbage formatteret i en XML-fil:
<?php
header ("content-type: text/xml");

echo "<reply>";
echo 'You typed ' . $_POST["firstname"] . ' ' . $_POST['lastname'] . ' as name' ;
echo "</reply>";

?>
Avatar billede RasmusRR Nybegynder
01. april 2011 - 23:05 #7
Hej Tjens

Nu har jeg leget med det, og fået det til at virke :-)

opret bare et svar.


Tak for hjælpen.
Avatar billede tjens Nybegynder
02. april 2011 - 10:17 #8
Hermed et Svar.
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