Avatar billede nazty Nybegynder
28. marts 2007 - 15:46 Der er 11 kommentarer

Billede visning

Hej

Jeg skal bruge et script som kan vise billeder.

-Krav:
Skal hente billeder fra en mappe. Billeder kan hedde:
0001.jpg
0001-2.jpg
0001-3.jpg
og f.eks
0002.jpg
0002-2.jpg
Scriptet skal finde alle de billeder i mappen der hedder noget med '0001' og '.jpg' til sidst. Scriptet skal vise billeder '0001.jpg', hvorunder der skal være tre links 1-2-3. Hvis man trykker på 2-tallet, viser den billedet '0001-2.jpg' og det samme sker ved 3-tallet, hvor den viser billedet '0001-3.jpg.

Når man trykker på billedet skal den gå ind på en side der hedder f.eks. '0001.asp?nr=2' hvis det er billedet '0001-2.jpg'
Avatar billede Slettet bruger
28. marts 2007 - 17:21 #1
- hejsa

giv mig lige 30 minutter så skal du nok lige få et script.

\Dan
Avatar billede nazty Nybegynder
28. marts 2007 - 17:34 #2
Lyder satme godt!
Hvis du får lavet et script der passer perfect, får du dobbelt point
Avatar billede Slettet bruger
28. marts 2007 - 17:54 #3
sådanner!

<%
foldername = "0001"
if request.querystring("nr")<>"" then
    if request.querystring("nr")=1 then
%>
<img src="<%=foldername & "/" & foldername & ".jpg"%>">
<%   
    else
%>
<img src="<%=foldername & "/" & foldername & "-" & request.querystring("nr") & ".jpg"%>">   
<%
    end if
else
set fs=Server.CreateObject("Scripting.FileSystemObject")
%>
<img src="<%=foldername & "/" & foldername & ".jpg"%>">
<br>
<%
set f=fs.GetFolder(server.mappath(foldername))
for each file in f.files
filename = file.name
if (left(filename,4)=foldername and right(filename,4)=".jpg") then
count=count+1
%>
<a href="<%=request.servervariables("script_name") & "?nr=" & count%>" target="_blank">
<%=count%>
</a>
<%
end if
next
set f=nothing
set fs=nothing
end if
%>

- men jeg kan ikke rigtigt se nogen ide i at billedet skal vises i en nye asp-fil - hvorfor i alverden kan man ikke bare "genbruge" den forrige. Det sparer dig for en masse besvær...


\Dan
Avatar billede nazty Nybegynder
28. marts 2007 - 18:31 #4
Ser godt ud. Jeg skal lige spise nu, så prøver det om 30min ca.

Grunden til at billedet skal åbnes i en ny fil er sådan set bare fordi der skal stå noget info, til det billedet. Kan det laves lettere end en ny fil?

Hele systemet er et en produktside. Hvert produkt har mellem 1-10+ sorter/billeder. Hvis man vælger billede/sort 4, skal der komme info om billede/sort 4 i et nyt printervenligt vindue.
Avatar billede nazty Nybegynder
28. marts 2007 - 19:42 #5
Hmm.. kan ikke lige få det tilpasset til det jeg mangler.
Vil lige prøve at forklare det på en anden måde:
Jeg har en hjemmeside som skal præsentere nogle produkter. Hver produkt har et stregkode nr i databasen, som kaldes 'nr'. Det er forskelligt hvor mange billeder er høre til hvert produkt, men mindst ét. Udfra hvert produkt er der et billede. Hvis der er flere varianter af produktet, er der også flere billeder. Antal varianter = Antal billeder. Billederne til ALLE produkter lægger i samme mappe: "../../img/". Hvis vi siger et produkt har nr = 0001, søger den mappen "../../img" igennem for alle .jpg filer der starter med navnet 0001 og slutter på .jpg. Dvs. at den henter filer der f.eks. hedder "0001-2.jpg", "0001-3.jpg" osv. Under hvert produkt billede bliver der linket til hvert billede med 1-2-3..-n hvor n = antal billeder. I dette tilfælde er link 1 = "0001.jpg" og 2 = "0002.jpg" osv.

Håber det giver en bedre forståelse :)
Avatar billede Slettet bruger
28. marts 2007 - 23:54 #6
egentlig ikke!

- Men hvis jeg var dig ville jeg lave stierne til billederne i databasen. Som du siger står det jo allerede i databasen hvad mappen hedder som ex. "0001" og så skal databasen jo bare vide hvad billederne hedder. Så kunne man lave en kollonne i tabellen som hedder "billede" og så lave denne værdi eksempelvist hvis der er flere billeder: "0001.jpg;0001-2.jpg;0001-3.jpg" og så lave en anden kollonne til kommentarerne til billederne som så har denne værdi hvis der er flere billeder: "billede 1 kommentar; billede 2 kommentar; billede 3 kommentar" - og sådan kunne man så blive ved.
Det smarte her ville så være at så kunne man gøre det hele til et database-udtræk - og det ville for det første gøre det hele hurtigere og mere stabilt og ikke mindst er der også mindre risiko for fejl.

- når du så vil hente billederne skal man jo bare splitte værdien i "billede" og vise det første og lave links til de andre.

\Dan
Avatar billede nazty Nybegynder
29. marts 2007 - 07:53 #7
Ja, har tænkt på det, men det kan ikke betale sig, vil tage alt for lang tid. Billederne i mappen bliver skiftet ud løbende. Og der er mindst 2000 billedet. Og det er forskelligt om der er 1 eller 12 billeder til hvert nr.

En anden ting er, at ALLE billederne lægger i samme mappe, ../../img/. Så der er ingen mappe som hedder 0001.
I Databasen er alle filnavnene, nemlig 'nr', uden .jpg efter. De "kommentar" der skal være til billederne, er de 15 andre kollonner der er i databasen
Avatar billede nazty Nybegynder
29. marts 2007 - 10:22 #8
Jeg har fået lavet det her:
-------------------------------------------------
<%
folder = "../../../log/unique/img"
first = nr & ".jpg"

count=0
set fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.GetFolder(server.mappath(folder))
for each file in f.files
name = file.name
if lcase(left(name,13)) = nr and lcase(right(name,3)) = "jpg"  then
if count = "" then
first = name
end if
count=count+1
if count <> 0 then
%>
<span id=<%=count%>  style="cursor:hand" onclick="document.getElementById('<%=nr%>').src='<%=folder%>/<%=name%>';">
<% Response.Write "| " & count %>
</span>
<%
end if
end if
next
set f=nothing
set fs=nothing
    if first <> "" then

end if %> |
-------------------------------------------------
Men:
Hvis der f.eks er 2 billeder til et 'nr' kommer det til at se sådan her ud under billedet:
|1|2|
Jeg vil gerne have at |1| er det billede der FØRST bliver vist. Som det er ovenfor er det altid det billede med det højeste nr, som bliver vist først. Altså.. når man loader siden bliver der vist 1 billede udfra hvert produkt. Det billede er altid det med højeste nr, hvilket det ikke skal være. Det skal altid være det billede med laveste nr, med andre ord, det billede uden "-nr"
Avatar billede nazty Nybegynder
29. marts 2007 - 10:23 #9
Manglede lige noget i koden. Se bort fra den ovenstående. Her er den rigtige:
------------------------------
<%
folder = "../../../log/unique/img"
first = nr & ".jpg"
%>
                                                                    <p><a href="java script:MM_openBrWindow('site_produkter_img.asp?id=<%=id%>','','status=yes,width=671,height=719')"><img name="<%=nr%>" id="<%=nr%>"  src="<%=folder%>/<%=first%>" height="93" width="136"/></a></p>
                                                                </td>
                                                            </tr>
                                                            <tr>
                                                                <td>
                                                                    <div align="right">
                                                                        <p>
<%
count=0
set fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.GetFolder(server.mappath(folder))
for each file in f.files
name = file.name
if lcase(left(name,13)) = nr and lcase(right(name,3)) = "jpg"  then
if count = "" then
first = name
end if
count=count+1
if count <> 0 then
%>
<span id=<%=count%>  style="cursor:hand" onclick="document.getElementById('<%=nr%>').src='<%=folder%>/<%=name%>';">
<% Response.Write "| " & count %>
</span>
<%
end if
end if
next
set f=nothing
set fs=nothing
    if first <> "" then
%>
<% end if %> |</p>
Avatar billede nazty Nybegynder
09. maj 2007 - 14:22 #10
send svar
Avatar billede Slettet bruger
09. maj 2007 - 18:25 #11
OK!

Her et svar...

\Dan
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