06. februar 2006 - 22:14Der er
20 kommentarer og 1 løsning
onMouseover script i asp-script
Jeg har et Java-script som virker i en ren html fil, men jeg har nu i lang tid prøvet at flette scriptet ind i en asp-fil uden at det er lykkes for mig.
min asp fil som bruges i en adresseliste på min hjemmeside ser sådan her ud:
<% strSQL = "SELECT * FROM adresse WHERE kompagni LIKE '%"&request.querystring("kom")&"%' AND deling LIKE '%"&request.querystring("del")&"%' ORDER BY Fornavn ASC" Set record = rs.Execute(strSQL)
counter = 0
Do While Not record.EOF If counter Mod 3 = 0 Then If counter <> 0 Then Response.Write "</tr>" Response.Write "<tr>" End If
Do While counter Mod 3 <> 0 Response.Write "<td> </td>" counter = counter + 1 Loop %>
Det som skal ske er. Der vil blive vist et billede med navn på brugeren lige under billedet og når man køre musen henover billedet skal brugerens adresse komme frem.
Brugerne kan upload deres eget billede og få det vist. måden jeg henter billederne på ser sådan her ud:
<% dim fs path = Server.MapPath("billeder/adresseliste/"& session("brugerid"))
set fs=Server.CreateObject("Scripting.FileSystemObject") if fs.FileExists(path & ".gif")=true then response.write "<img src='billeder/adresseliste/"& session("brugerid") &".gif' width='150' height='113'>" elseif fs.FileExists(path & ".jpg")=true then response.write "<img src='billeder/adresseliste/"& session("brugerid") &".jpg' width='150' height='113'>" else Response.write "<img src='billeder/adresseliste/fotografen_er_på_vej.gif' width='150' height='113'>" end if set fs=nothing %>
Min tanke er at du skriver navnet i en div eller lignende, og giver den style="display: none;". Så vil den blive vist når man kører over billedet, idet display sættes til block.
Hvis der er flere billeder på siden giver du så de forskellige id med brugerID'et i:
Idanielsen jeg tror ikke du har forstået hvad det er jeg mener eller måske har jeg udladt en vigtig info, på siden hvor adresserne viser er der en tabel. Tabellen er bygget op af tre kolonner i hver række. Hvis du er forviret kan det måske hjælpe dig at du kigger i fil igennem og vil du det kan du få adgang via min ftp til min hjemmeside.
Du vil, lyder det til, godt kunne finde ud af at lave det du ønsker, i ren HTML. Men da det skal laves udfra en database, skal du få serveren, dvs. asp'en til at skrive det html der skal til.
Hvis der er flere personer på hver side, skal du nok tænke på at bruge id'et for hver person til at styre det med. Du kunne f.eks. lave et antal javascript vriabler, der indeholder navnene:
Dette skal naturligvis flettes sammen med det loop du har i forvejen.
Kan du ikke poste koden som du har nu, så kan jeg bedre se hvad du vil. Det kode som du har postet nu er, så vidt jeg forstår, uddrag af to forskellige sider, som ikke er den endelige side som du ønsker at lave.
Jeg vil foretrække at det foregår her i forum'et, dette er i øvrigt også ekspertens holdning. Så er der større chance for at det vi finder ud af kan komme andre til gode.
Lige pt, fungere det en den måde at, man klikker sig ind på adresselisten og der er der en tabel, med tre kolonner i hver række. Klikker man på et navn bliver man sendt videre til en anden side og der vil man så kunne se alle relavante oplysninger.
Som jeg gerne vil have det skal være. Man klikker sig ind på adresselisten der er en table med tre kolonner i hver række, i hver celle skal der være et billede med et navn under. Køre man musen henover billedet skal alle relavante oplysninger komme frem.
At du hoppede på min ftp og lige kiggede min fil igennem ville ikke betyde noget, skulle vi finde ud af noget vil jeg selvføgelig poste det her, netop så andre brugere kan følge med i udviklingen. Men fred være med at du ikke har lyst til det. :o)
OK så. jeg garanterer ikke noget, men håber at du kan se hvad det er jeg gør. Jeg ved ikke hvad adressefelterne hedder i databasen, så der har jeg gættet.
<html> <head> <title></title> </head>
<body> <table> <% Dim Counter, strNavn, fs, path
set fs=Server.CreateObject("Scripting.FileSystemObject")
'Åbn record her
Counter = 0
Do While Not record.EOF strNavn = record("fornavn") & " " & record("mellemnavn") & " " & record("efternavn") path = Server.MapPath("billeder/adresseliste/"& record("id")) if fs.FileExists(path & ".gif") = true then strImageUrl = "billeder/adresseliste/" & session("brugerid") & ".gif" elseif fs.FileExists(path & ".jpg") = true then strImageUrl = "billeder/adresseliste/" & session("brugerid") & ".jpg" else strImageUrl = "billeder/adresseliste/fotografen_er_på_vej.gif" end if
har lige prøvet at sætte det ind i en fil og har skrevet min record ind, men det virker ikke. Hvorfor har du skrevet strnavn i DIM??? navnet skal jo også hentes fra databasen.
nu er jeg på arbejde så jeg kan ikke lige se fejlen, men det er flere tegn der mangler når jeg sætter min record ind.
altså:
strSQL = "SELECT * FROM adresse WHERE kompagni LIKE '%"&request.querystring("kom")&"%' AND deling LIKE '%"&request.querystring("del")&"%' ORDER BY Fornavn ASC" Set record = rs.Execute(strSQL).
Som sagt: Jeg ved ikke hvad adressefelterne hedder i databasen, så der har jeg gættet.
Item cannot be found in the collection corresponding to the requested name or ordinal. - betyder at du har skrevet fx. Response.Write(record("saftevand")) og der ikke er et felt i din SQL der heder "saftevand"
Jeg anvender felterne id, adresse, postnr, bynavn, telefon, mobil og email, så der må være et af de felter som ikke findes under det navn.
Omtalte linie skulle gerne resultere i noge der ligner:
Altså et billede med mouseover/out der viser/skjuler en div, som det så var meningen skulle indeholde adressen. jeg kan se at jeg ikke har tænkt det igennem, for id skulle have været 'AdresseDiv_345' i begge tilfælde (345 er blot et eksempel, det skal jo være id'et for den person du "har fat i" på pågældende tidspunkt.)
ok, jeg mente jeg havde fået rettet til de rigtige "navne", men det havde jeg ikke alle steder. Det har jeg så nu og nu kommer der da også billeder og oplysninger.
MEN!!!!! Når man klikker sig ind på en adressegruppe, hvor der fx. er 5 brugere, så er der 5 billeder oven over tabellen, alle under hinanden, og der er ikke nogen billeder i <td>'erne, køre man musen hen over så kommer oplysningerne og fjerne man musen igen SÅ kommer billedet.
det der er inden i en tuborg {} er hvad jeg har rettet.
Så nu er der et billede i alle <td>'erne når siden loader, får og efter musen har været over <td>'erne, plus at det hele er centreret.
Og alt imens jeg sidder og skriver kommer jeg til at tænke på, at dene eneste grup til at der er billeder udenfor tabellen er at du jo har lavet en response.write {response.write ("<img src=""" & strImageUrl & """ width=""150"" height=""113"" onMouseOver=""document.getElementById['IdForDetElementDuVilBruge'].style.display = 'block';"" onMouseOut=""document.getElementById['AdresseDiv_" & record("Id") & "'].style.display = 'none';"">")}, den prøvede jeg at udkommentere og ganske rigtige så er der nu ikke nogen billede andre steder end i tabellen.
Så lige nu vil jeg faktisk mede at du har fået løst mit problem for mig.
dog har jeg lige et spørgsmål, som dog falder lidt uden for mit oprindelige spørgsmål, men hvordan for jeg lavet emailen til et link?
Ved du hvad, det lyder alt sammen meget spændende, men jeg kan jo ikke se det. Er der ikke en adresse hvor man kan følge med?
Når jeg ser på det oprindelige spørgemål, handlede det om at flette noget javascript sammen med asp'en, ikke? Har du fået hold på det, eller hvad? For at bevare sammenhængen og anvendeligheden af dette forum, bør du oprette nye spørgsmål når du får nye problemer, evt. med mindre pointtal end de 100 du har udlovet her.
Men jeg lægger også mærke til at du løser mange af tingene selv, omtrent en halv time efter at du har rejst problemet ... :o)
Hvis du viser mig din kode, og giver mig adressen, så vil jeg gerne runde af med at vurdere den måde du har løst det på.
adressen kan du skam godt få, den hedder http://webtest.thomas-myg-hansen.dk, hvor du bare skal logge ind med bruger: tester og koden test. derfra går du bare ind under adresseliste klikker på et vilkårlig link.
Synes godt om
Ny brugerNybegynder
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.