Avatar billede jerving Nybegynder
14. november 2001 - 16:40 Der er 23 kommentarer og
1 løsning

Vis billede og oplyninger i nyt vindue

Kære eksperter,

Jeg har en access sql db, med en tilhørende side, der viser al data i en tabel: Billed, Navn, Designer og Beskrivelse.

I siden brugeren får, ser den konkrete kode således ud:
<%
Response.Write \"<table width=\"\"400\"\" border=\"\"0\"\" cellspace=\"\"5\"\" class=\"\"aspTabels\"\">\"
strSQL = \"Select * from furniture\"
Set rs = Conn.Execute(strSQL)
Response.Write \"<td align=\"\"center\"\" valign=\"\"center\"\" height=\"\"140\"\">\"
  Response.Write \"<img src=\"\"pullimageFurn.asp?id=\"&rs(\"ID\")& \"\"\" width=\"\"150\"\" height=\"\"113\"\">\" & \"</td>\" & \"<td align=\"\"center\"\" valign=\"\"center\"\">\" & \"<a href=\"\"/furnWin.asp\"\" onclick=\"\"NewWindow(this.href,\'Browse\',\'400\',\'300\',\'no\',\'center\');return false\"\" onfocus=\"\"this.blur()\"\">\"
  Response.Write rs(\"Navn\") & \"</td>\" & \"<td align=\"\"center\"\" valign=\"\"center\"\">\" & \"</a>\"
  Response.Write rs(\"Designer\") & \"</td>\" & \"<td align=\"\"center\"\" valign=\"\"center\"\">\"
  Response.Write rs(\"Beskrivelse\") & \"</td>\" & \"</tr>\"
rs.MoveNext
Loop While Not rs.EOF
Conn.Close
Set Conn = Nothing
  Response.Write \"</table>\"
%>

pullimageFurn.asp ser således ud:
<%
Set rs = Server.CreateObject(\"ADODB.Recordset\")
ID = Request(\"ID\")
rs.Open \"select [File_Data],[Content Type] from furniture where ID = \" & ID, connStr, 2, 4

If Not rs.EOF Then
  Response.ContentType = rs(\"Content Type\")
  Response.BinaryWrite rs(\"File_Data\")
End If

rs.Close
Set rs = Nothing
%>

(File_Data) er billedet.

Mit spørgsmål lyder på: Er der nogen der ved hvordan jeg i det vindue der åbnes ved (Response.Write \"<img src=\"\"pullimageFurn.asp?id=\"&rs(\"ID\")& \"\"\" ),kan vises det pågældende billed alene altså, hvordan man kalder ID\'et. 2 Hvordan henter man fx. noget af det pågældende ID\'s data og sætter som <title></title>?

Jeg hårber ikke at spørgsmålet er formuleret alt for knudret. :-)
Avatar billede somaliomar Praktikant
14. november 2001 - 17:56 #1
Jeg tror ikke, jeg er helt med på, hvad det er du vil. Uddyb spm.
Avatar billede jerving Nybegynder
14. november 2001 - 18:33 #2
Det kan jeg godt forstå, det er ikke skide godt formuleret;-). Situationen er den, at jeg har lavet et uploading- system til en database der funger fint. Jeg har lavet en side, (furn.asp) der udskriver der læser tabellen \"furniture\" igennem, udskriver kolonnerne: File_data (som er billedet - bruger filen pullimageFurn.asp  til at vise det), Navn, Beskrivelse og Designer. Den udskriver alle felter i de pågældende kolonner, hvilket fungerer fint (se evt. http://www.opus57.dk/furn.asp)

Det jeg ønsker at vide er: hvodan genereres der et link til alle udskrevende billeder, der når man klikker på dem åbner et nyt vindue, som viser de konkrete felter i kolonnen. Og hvodan sætter man <title></title> i det pågældende vindue til at vise fx. feltet i kolonnen \"Designer\"?.

Håber at det gjorde mit spørgsmål mere forståligt.
Avatar billede lsolesen Nybegynder
14. november 2001 - 22:36 #3
Kan du ikke lave det med en window.open i Javascript?
Avatar billede lsolesen Nybegynder
14. november 2001 - 22:42 #4
Du har en fil (fx billedoversigt.asp). Fra den har du et link (et billede), som du gerne vil åbne et popup-vindue med, hvor billedet bliver vist.

Du kan løse problemet ved at lave endnu en fil. Kald denne fil i popup-vinduet, fx billedpopup.asp.

Du kalder filen med et link, som sender id\'et med over, fx billedpopup.asp?id=xx.

I billedpopup kalder du id\'et med request.querystring(\"id\"), eller hvilken information du nu ønsker at få med over i vinduet (det kunne være billedtitlen).

For at få den til at være i <title>-tagget, skriver du <title><% response.write(request.querystring(\"id\")) %></title>.
Avatar billede lsolesen Nybegynder
14. november 2001 - 22:51 #5
Du bruger altså ikke this.href, men laver en ny fil.

Tilsyneladende er der noget forkert i din kode. Bør være således:

Idet jeg bruger designer som eksempel og går ud fra, at du kalder en javascriptfunktion, du kalder NewWindow. Du kunne i øvrigt med fordel skrive mere af din information i din funktion.

Response.Write \"<a href=\"\"/furnWin.asp\"\" onclick=\"\"NewWindow(\'billedpopup.asp?designer=karl\',\'Browse\',\'400\',\'300\',\'no\',\'center\');return false\"\" onfocus=\"\"this.blur()\"\"><img src=\"\" & [BILLEDSTI OG FILNAVN] & \"\" width=\"\"150\"\" height=\"\"113\"\"></a>\"
Avatar billede jerving Nybegynder
15. november 2001 - 10:18 #6
Hej lsolesen,

Tak for dit svar. Jeg skal lige nævne at jeg er nybegynder i asp, så jeg har ikke helt styr på syntaksen endnu - så tilgiv mig hvis jeg stiller nogle tåbelige spørgsmål.

Jeg er med på det, du siger med at lave en fil til vinduet (furnWin.asp) som vi siger heder billedpopup.asp. Filmen knækker når jeg skal skrive koden til denne fil;

<%
Set rs = Server.CreateObject(\"ADODB.Recordset\")
ID = request.querystring(\"ID\")

Set Conn = Nothing
%>

Og i furn.asp (som er vinduet, der bliver åbnet), kan man da blot skrive fx.

Response.Write \"<img src=\"\"billedpopup.asp?id=\"&rs(\"ID\")& \"\"\"


MVH.

jerving
Avatar billede webbe Nybegynder
15. november 2001 - 12:50 #7
Tror ikke heeeeeelt du har styr på din HTML!

Man bruger ikke asp-filer i en image source! ;0)

din response.write skulle nok nærmere være som følger:

response.write \"<img src=\"\"mappenavn/\"&rs(\"id\")&\"\"\">\"
Avatar billede lsolesen Nybegynder
15. november 2001 - 15:31 #8
Vi kalder den fil du åbner furnWin.asp.

Vi kalder den fil du åber vinduet fra: pullimage.asp.

I pullimage.asp skal du hente dit id fra databasen. Dette id sender du over i furnWin.asp med <a href=\"furnwin.asp?id=\"<%=rs(\"id\")%>\">Billednavn</a>

I furnwin.asp kalder du id\'et ved følgende kode:
<% ID = request.querystring(\"ID\")
response.write id
%>
Avatar billede jerving Nybegynder
15. november 2001 - 16:49 #9
Du er sku genial Isolesen. Jeg får ID\'et op på skærmen. Jeg har sevfølgelig bare lavet en eller and sjuskefejl så de vises i samme vindue og ikke i et nyt kan du se fejlen?:

Response.Write \"<td align=\"\"center\"\" valign=\"\"center\"\" height=\"\"140\"\">\" & \"<a href=\"\"furnWin.asp?id=\"&rs(\"id\")&\"\"\" onclick=\"\"NewWindow(\'furnWin.asp\',\'Product Browser\',\'400\',\'300\',\'no\',\'center\');return false\"\" onfocus=\"\"this.blur()\"\">\"

Avatar billede jerving Nybegynder
15. november 2001 - 17:42 #10
Hmm, hvad skriver jeg så for at få billedet frem på i furnWin frem for blot ID\'nummeret?

ID = request.querystring(\"ID\")
response.write id
Response.Write \"<img src=\"\"id=\"(request.querystring(\"ID\"))& \"\"\">?


Avatar billede lsolesen Nybegynder
15. november 2001 - 19:09 #11
Jeg er nu ikke genial; jeg har bare forsøgt mig frem med ASP lidt længere end dig.

Din a href skal ikke henvise til furnWin, det skal din onclick:

Måske sådan her:

Response.Write \"<td align=\"\"center\"\" valign=\"\"center\"\" height=\"\"140\"\">\" & \"<a href=\"\"#\"\" onclick=\"\"NewWindow(\'furnWin.asp?id=\"&rs(\"id\")&\"\',\'Product Browser\',\'400\',\'300\',\'no\',\'center\');return false\"\" onfocus=\"\"this.blur()\"\">\"

Du skal sende filnavnet med også, hvis du vil kalde billedet frem i det nye vindue:

fx \"furnWin.asp?id=\"&rs(\"id\")&rs(\"filnavn\")\"

Har ikke lige tjekket for \" osv., men du skal altså sende begge oplysninger til det nye vindue.

ID = request.querystring(\"ID\")
filnavn = request.querystring(\"filnavn\")


Response.Write \"<img src=\"\"& filnavn & \"\"\">?

/lars
www.legestue.net




Avatar billede jerving Nybegynder
16. november 2001 - 12:37 #12
Hej Lars,

Du får selvføjgelig accepteret dit svar under alle omstændigheder, men jeg har til alles store overraskelse stadig problemer. Det er lidt mystisk. Jeg har valgt at bruge et andet window.open - javascript, da dette kan anvedes bedere en det første. Dette benytter dragable layer istedet. Mit link i furn asp ser nu således ud:
\"<a href=\"\"java script:loadwindow(\'furnWin.asp?id=\"&rs(\"id\")&rs(\"File Name\")&\"\',600,400)\"\">\"

Dvs. kolonnenavnet med filnavnet i db\'en hedder File Name.

Når jeg i furnWin.asp fx. skriver:<% ID = request.querystring(\"ID\")
FileName = request.querystring(\"File Name\")

Response.Write FileName %>

skriver furnWin.asp helt korrekt fx. front.jpg.

Men skriver jeg:<%ID = request.querystring(\"ID\")
FileName = request.querystring(\"File Name\")

Response.Write \"<img src=\"\"& FileName & \"\"\">\"%>
får jeg blot en besked om at siden ikke kan vises?

Jeg fatter det ikke helt :(
Avatar billede lsolesen Nybegynder
16. november 2001 - 14:12 #13
I din henvisning skal du skrive på følgende måde:

furnWin.asp?id=\"&rs(\"id\")&\"&filnavn=\"&rs(\"filnavn\")&\"

Din response.write i bunden skal ikke indehold %> til sidste. Det er jo det, der markere om du skriver ASP eller HTML. Jeg tror bare du skal tjekke dine \". Hvis din fejl er en Intern 500-fejl er det fordi din kode ikke er helt rigtig skrevet - ofte har man bøffet med \".

Ellers må du prøve at poste hele kildeteksten i dit popupvindue!

Endelig er det en god ide at bruge forskellige anførselstegn for dit eget overblik:

response.write \"<img src=\'\"& filnavn & \"\'>\" Det kan gøre det hele lidt mere overskueligt!
Avatar billede jerving Nybegynder
16. november 2001 - 14:40 #14
Aaarh, Det virker som om, at den er lige ved at være der - kan ikke finde fejlen. Der kommer ikke nogen direkte fjel, men der vises blot et \"IE billede ikke tilgængeligt-symbol\" når jeg tester det (http://www.opus57.dk/furn.asp).

furn.asp ser således ud:

<%
\' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath (\"/db/database.mdb\")
Conn.Open DSN


\' SQL forespørgsel
strSQL = \"Select * from furniture\"
\' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

  Response.Write \"<table width=\"\"400\"\" border=\"\"0\"\" cellspace=\"\"5\"\" class=\"\"aspTabels\"\">\"
 
  Response.Write \"<td align=\"\"center\"\" valign=\"\"bottom\"\">\"
  Response.Write \"<b>\" & (\"Image\") & \"</b>\" & \"</td>\" & \"<td align=\"\"center\"\" valign=\"\"bottom\"\">\"
  Response.Write \"<b>\" & (\"Product\") & \"</b>\" & \"</td>\" & \"<td align=\"\"center\"\" valign=\"\"bottom\"\">\"
  Response.Write \"<b>\" & (\"Designer\") & \"</b>\" & \"</td>\" &  \"<td align=\"\"center\"\" valign=\"\"bottom\"\">\"
  Response.Write \"<b>\" & (\"Description\") & \"</b>\" & \"</td>\" & \"<tr>\"
 


Do

  \' HER ER LINKET!!!
  Response.Write \"<td align=\"\"center\"\" valign=\"\"center\"\" height=\"\"140\"\">\" & \" <a href=\"\"java script:loadwindow(\'furnWin.asp?id=\"&rs(\"id\")&\"&FileName=\"&rs(\"File Name\")&\"\',600,400)\"\">\"
  Response.Write \"<img src=\"\"pullimageFurn.asp?id=\"&rs(\"ID\")& \"\"\" width=\"\"150\"\" height=\"\"113\"\">\" & \"</td>\" & \"<td align=\"\"center\"\" valign=\"\"center\"\" border=\"\"0\"\">\" & \"</a>\"
  Response.Write rs(\"Navn\") & \"</td>\" & \"<td align=\"\"center\"\" valign=\"\"center\"\">\"
  Response.Write rs(\"Designer\") & \"</td>\" & \"<td align=\"\"center\"\" valign=\"\"center\"\">\"
  Response.Write rs(\"Beskrivelse\") & \"</td>\" & \"</tr>\"
 
 
 
      rs.MoveNext

File)
Loop While Not rs.EOF

Conn.Close
Set Conn = Nothing

  Response.Write \"</table>\"

%>



furnWin ser således ud:
<%
\' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath (\"/db/database.mdb\")
Conn.Open DSN



strSQL = \"Select * from furniture\"
Set rs = Conn.Execute(strSQL)

ID = request.querystring(\"ID\")
FileName = request.querystring(\"File Name\")

Response.Write id
response.write \"<img src=\'\"& FileName & \"\'>\"


Conn.Close
Set Conn = Nothing
%>


Kan du lure fejlen?
Avatar billede lsolesen Nybegynder
16. november 2001 - 15:26 #15
FileName = request.querystring(\"File Name\")

skal være

FileName = request.querystring(\"FileName\")

Så skulle den vist være der!

:-)
Avatar billede jerving Nybegynder
16. november 2001 - 16:08 #16
Hmm, virker ikke. Men (husk lige jeg er en klovn til asp) \"File Name\" er det konkrete kolonnenavn - alså med mellemrum. Grunden til at jeg i FileName = request.querystring(\"File Name\") fjerner mellemrummet er for at ungå at få \"kan ikke forstå mellemrum-fejlen.

Jeg har i furn.asp nu også rettet \"<a href=\"\"java script:loadwindow(\'furnWin.asp?id=\"&rs(\"id\")&\"&File Name=\"&rs(\"File Name\")&\"\',600,400)\"\">\"

Så de er ens.

Jeg lærer aldrig at brugede det her sprog ordentligt...:(
Avatar billede somaliomar Praktikant
16. november 2001 - 17:09 #17
jerving >> Hvad for en fejl for du?
Avatar billede jerving Nybegynder
16. november 2001 - 17:24 #18
Hej,

Hvis du går ind på http://www.opus57.dk/furn.asp kan du se det. Når der trykkes på et billede kommer der et vindue op, der skulle vise billedet, der trykkes på alene. Men der vises blot et tomt billedsymbol?

MVH
Jerving
Avatar billede lsolesen Nybegynder
16. november 2001 - 23:20 #19
Jerving, Jerving dog.

Request.querystring kalder på det parameter, du har sendt med dit filnavn=filnavn.jpg. Den returnerer altså filnavn.jpg.

\"<a href=\"\"java script:loadwindow(\'furnWin.asp?id=\"&rs(\"id\")&\"&FileName=\"&rs(\"File Name\")&\"\',600,400)\"\">\"

Du skal altså stadig skrive filnavn i et ord.
Hvis du laver en \'Vis kilde\' på dit popupvindue, vil du se, at der ikke står noget billede i dit IMG-tag.

Er du sikker på, at du overhovedet trækker et filnavn ud af databasen i furn.asp. Det kan du tjekke ved at lave en response.write rs(\"filnavn\"). Hvis du får filnavnet ud, burde det virke.

Umiddelbart ser det ud til i din kode, at dit filnavn findes under navnet Image?

I øvrigt behøver du ikke i popup-vinduet at åbne databasen igen. Du sender jo oplysningerne med filnavnet og id\'et med nogle parametre.

/lars
Avatar billede lsolesen Nybegynder
16. november 2001 - 23:25 #20
Se om følgende ikke virker. Hvis ikke det virker. Skriv tilbage med kommentar om, hvilken linie, der giver fejl ;-)

furn.asp:

<%
\' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath (\"/db/database.mdb\")
Conn.Open DSN

\' SQL forespørgsel
strSQL = \"Select * from furniture\"
\' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

  Response.Write \"<table width=\"\"400\"\" border=\"\"0\"\" cellspace=\"\"5\"\" class=\"\"aspTabels\"\">\"
 
  Response.Write \"<td align=\"\"center\"\" valign=\"\"bottom\"\">\"
  Response.Write \"<b>\" & rs(\"Image\") & \"</b>\" & \"</td>\" & \"<td align=\"\"center\"\" valign=\"\"bottom\"\">\"
  Response.Write \"<b>\" & rs(\"Product\") & \"</b>\" & \"</td>\" & \"<td align=\"\"center\"\" valign=\"\"bottom\"\">\"
  Response.Write \"<b>\" & rs(\"Designer\") & \"</b>\" & \"</td>\" &  \"<td align=\"\"center\"\" valign=\"\"bottom\"\">\"
  Response.Write \"<b>\" & rs(\"Description\") & \"</b>\" & \"</td>\" & \"<tr>\"
 
Do While Not rs.EOF


  \' HER ER LINKET!!!
  Response.Write \"<td align=\"\"center\"\" valign=\"\"center\"\" height=\"\"140\"\">\" & \" <a href=\"\"java script:loadwindow(\'furnWin.asp?id=\"&rs(\"id\")&\"&FileName=\"&rs(\"File Name\")&\"\',600,400)\"\">\"
  Response.Write \"<img src=\"\"pullimageFurn.asp?id=\"&rs(\"ID\")& \"\"\" width=\"\"150\"\" height=\"\"113\"\">\" & \"</td>\" & \"<td align=\"\"center\"\" valign=\"\"center\"\" border=\"\"0\"\">\" & \"</a>\"
  Response.Write rs(\"Navn\") & \"</td>\" & \"<td align=\"\"center\"\" valign=\"\"center\"\">\"
  Response.Write rs(\"Designer\") & \"</td>\" & \"<td align=\"\"center\"\" valign=\"\"center\"\">\"
  Response.Write rs(\"Beskrivelse\") & \"</td>\" & \"</tr>\"
 
      rs.MoveNext

Loop

Conn.Close
Set Conn = Nothing

  Response.Write \"</table>\"

%>



furnWin ser således ud:
<%

ID = request.querystring(\"ID\")
FileName = request.querystring(\"FileName\")

Response.Write id
response.write \"<img src=\'\"& FileName & \"\'>\"

%>
Avatar billede jerving Nybegynder
17. november 2001 - 11:26 #21
Hej Lars,

Nu har jeg prøvet at rette det som du siger. Men billedet vises af en eller anden grund stadig ikke. Det er lidt sort for hvis man ser på kilde koden i firnWin.asp, fremgår navnet på billedet korrekt, men det vises blot ikke.Det er ikke til at hitte ud af. Det er blot stationære overskrifter til brugeren der udskives i den første del af tabbelen i furm.asp - hvilket forklarer hvorfor, der dér står (\"Image\"), men kolonnenavnet er File Name. - Håber du er med på hvad jeg mener.

Altså tabellen furniture ser således ud:

ID (Autonummerering)
FIle Name (Tekst)
File Size (Tal)
File_Data (OLE-Objekt)
Content Type (Tekst)
Navn (Tekst)
Designer (Tekst)
Beskrivelse (Tekst)

Med venlig hilsen Jerving
Avatar billede lsolesen Nybegynder
17. november 2001 - 12:39 #22
I dit hovedvindue vises billedet vha. pullimagefurn.asp?id=[nummer]

Det burde du kunne overføre til dit popupvindue, hvor du jo overfører id\'et:

furnwin.asp:

ID = request.querystring(\"ID\")

Response.Write id
response.write \"<img src=\'pullimagefurn.asp?id=\"&id&\"\'>\"
Avatar billede jerving Nybegynder
17. november 2001 - 12:58 #23
Det virker sku!!! Du er sku for cool 1000,1000 TAK FOR HJÆLPEN LARS!!!!!!
Avatar billede lsolesen Nybegynder
17. november 2001 - 12:59 #24
Så lidt! ;-)
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