Bjørn Christiansen Skrevet 5. august 2007 Del Skrevet 5. august 2007 (endret) Hei, Har testet ut lightbox og synes det funker helt greit, helt til jeg kommer til det å få telt hvor mange ganger et bilde er sett. Tenkte jeg skulle kjøre en PHPkodesnutt for å ordne med tellinga, men er litt usikker på hvordan jeg skal få aktivert kodesnutten når lightboxen må initieres ved hjelp av href-attributten. Noen som har noen forslag til hvordan jeg kan gjøre det? Orker ikke noen diskusjon omkring lightbox er bra eller dårlig. Endret 21. august 2007 av Kopp Lenke til kommentar
Bjørn Christiansen Skrevet 5. august 2007 Forfatter Del Skrevet 5. august 2007 (endret) Ajax? 9216079[/snapback] Satt å plundra med det ja. Så lurte jeg på, jeg har en javascript-funksjon som tar imot en variabel og henter php-scriptet og initierer det. Men jeg skulle sendt med en ID til ajax-initieringa og lurer litt på hvor jeg skal putte ID-en for å kunne sende den med. Som det ser ut nå står det i <body>: <a onClick="tell(bilde1.jpg)" href="bilde1.jpg">bilde1</a> <a onClick="tell(bilde2.jpg)" href="bilde2.jpg">bilde2</a> <a onClick="tell(bilde3.jpg)" href="bilde3.jpg">bilde3</a> og her er funksjonen: function tell(id) { http.open("GET", url +"?id="+id, true); http.onreadystatechange = handleHttpResponse; http.send(null); } Endret 6. august 2007 av Kopp Lenke til kommentar
dabear Skrevet 5. august 2007 Del Skrevet 5. august 2007 Eh, de fleste nettlesere er slik at de ikke henter et bilde før det er satt til å vises. Når lightbox åpner bildet, vil det da kjøres en fetch av bildet som ligger på server. Det virker derfor for meg på tryne å gjøre dette hos klienten via javascript. Det er bare å lage et php/cgi/asp/etc-script som lagrer en teller hver gang det blir aksessert, for deretter å sende bildet og rette headere(image/png, image/jpg, image/gif etc) Lenke til kommentar
Bjørn Christiansen Skrevet 5. august 2007 Forfatter Del Skrevet 5. august 2007 Eh, de fleste nettlesere er slik at de ikke henter et bilde før det er satt til å vises. Når lightbox åpner bildet, vil det da kjøres en fetch av bildet som ligger på server. Det virker derfor for meg på tryne å gjøre dette hos klienten via javascript. Det er bare å lage et php/cgi/asp/etc-script som lagrer en teller hver gang det blir aksessert, for deretter å sende bildet og rette headere(image/png, image/jpg, image/gif etc) 9216119[/snapback] Hadde vært helt kurrant å gjort det, men serveren er litt på tryne når det gjelder å få sendt headere av en eller annen merkelig grunn, og jeg har ikke rootbruker på boksen så får ikke gjort noe med det heller. Er derfor jeg må mekke nytt galleri, så da er jeg på en måte tilbake til start. Lenke til kommentar
eiden84 Skrevet 6. august 2007 Del Skrevet 6. august 2007 Regner med at du bruker Ligtbox2 ? http://www.huddletogether.com/projects/lightbox2 Hvis du bruker det, får du også prototype.js med på kjøpet. I prototype er det blant annet et mata AJAX-bibliotek. Når Lightbox blir initialsert, legger blir denne funksjonen lagt til i onclick-handleren: function () { myLightbox.start(this); return false; } Det kan være at du vil klusse dette til hvis du legger til din egen onclick-handler på bildet. Har du en unik ID på hvert bilde? Eller vil du bare sende navnet på bildet tilbake til server? Lenke til kommentar
Bjørn Christiansen Skrevet 6. august 2007 Forfatter Del Skrevet 6. august 2007 Regner med at du bruker Ligtbox2 ?http://www.huddletogether.com/projects/lightbox2 Hvis du bruker det, får du også prototype.js med på kjøpet. I prototype er det blant annet et mata AJAX-bibliotek. Når Lightbox blir initialsert, legger blir denne funksjonen lagt til i onclick-handleren: function () { myLightbox.start(this); return false; } Det kan være at du vil klusse dette til hvis du legger til din egen onclick-handler på bildet. Har du en unik ID på hvert bilde? Eller vil du bare sende navnet på bildet tilbake til server? 9216202[/snapback] Er lightbox2 jeg har ja. Satt nettopp å tukkla med den prototype.js-fila. Fant ut at Ajax-en ikke funka helt da jeg kjørte med det scriptet. Har en unik id for hvert bilde. Har du noen forslag til hva som evt. kan stå i den prototype.js-fila? Er ikke så veldig god på JavaScript og Ajax som du kanskje forstår:p Lenke til kommentar
eiden84 Skrevet 6. august 2007 Del Skrevet 6. august 2007 (endret) Det er veldig enkelt å kjøre en AJAX-request. Hvis du skriver ut HTML'en med bildene slik: <a onclick="stats(this); return false" id="id1" href="bilde1.jpg">bilde1</a> Og legger denne funksjonen i <head> på siden din: function stats(image){ var url = 'http://dinserver/stats.php'; var pars = 'id=' + image.id; new Ajax.Request( url, { method: 'get', parameters: pars } ); } EDIT: Gjorde noen småforandringer i koden. Det kan være at Lightbox ikke vil fungere hvis du gjør dette. Hvis det ikke fungerer, forsøk dette: <a onclick="stats(this);myLightbox.start(this);return false" id="id1" href="bilde1.jpg">bilde1</a> Endret 6. august 2007 av eiden84 Lenke til kommentar
Bjørn Christiansen Skrevet 6. august 2007 Forfatter Del Skrevet 6. august 2007 Det er veldig enkelt å kjøre en AJAX-request. 9216251[/snapback] Så ut som ajaxfunksjonen min krasjet litt med den prototype.js-fila. Men ser at klokka nærmer seg to og en halv time etter spøkelsestid. Takk Skal se nærmere på det i morgen.. idag. Bare litt senere Lenke til kommentar
Bjørn Christiansen Skrevet 7. august 2007 Forfatter Del Skrevet 7. august 2007 Det er veldig enkelt å kjøre en AJAX-request. 9216251[/snapback] Skal se nærmere på det i morgen.. idag. Bare litt senere 9216260[/snapback] Ble brute-force-metoden. Etter nesten en dag forran skjermen fant jeg ut hvorfor header-funksjonen ikke funket. Eller, jeg har vel strengt tatt ikke funnet ut av det, men jeg fant en løsning. Header-funksjonen på serveren jeg har nettsida mi på er veldig sensitiv på hvilket filformat filen med scriptet kalles i. I mitt tilfelle ville den ha filformatet for PC og tegnsettet ANSI. Lagret alle filer relatert til respektable format og tegnsett og vips funket siden min igjen. For å implementere telling for filene kaller jeg bilde.php?id=12 som inneholder mysqlspørringer for å oppdatere posten og som sender tilbake header informasjon. Så da ble det løsningen til dabear som alt endte på. Takk for svarene uansett:) Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå