Hej!
Jeg har været så heldig at finde noget allerede skrevet asp kode,
der henter alle filer frem fra en angivet mappe og viser dem.
Jeg har så valgt at bruge det til at vise billeder fra
forskellige arrangementer (i forskellige mapper) på samme side,
så jeg gentager koden for hvert arrangements galleri.
Mine problemer kommer dog i at den skriver følgende fejl:
"Microsoft VBScript runtime error '800a0009'
Subscript out of range: '11'
/default.asp, line 315"
(se her:
http://www.musix.dk/?page=billeder )
Der ER kun 10 billeder (og intet andet, hverken andre filer eller
mapper eller noget som helst) i den mappe. Alligevel prøver den
at vise et 11. billede.
Ved galleriet før er der kun ét billede, men også her forsøger
den at vise endnu et.
Ved det første galleri er der kun ét billede og her vises der
også kun ét billede - jeg forstår ikke!
Det er som om den tager værdierne med i det senere gallerier (og
der derfor ikke sker fejl ved det første) - men hvordan undgår
jeg det? Jeg ved godt det er et monster projekt - men jeg har
ingen anelse om hvordan man får den til at bruge alle filer
fundet i en angivet mappe og der findes ikke noget, der er
skræddersyet til det jeg gerne vil have. Den skal garanteret
tilpasses meget mere endnu, men her er den kode, der bliver brugt
på ovenstående link:
<% Tbilleder = 1 %>
<p class="navigation">Navigation - [
<%
DO UNTIL Tbilleder = 6 OR rs3a.EOF %><a href="#ID-<%
=rs3a("ID") %>" class="navigation"><% =rs3a("titel") %></a>
<%
rs3a.MoveNext
Tbilleder = Tbilleder + 1
LOOP %>]</p>
<center>
<table border="0" cellpadding="0" cellspacing="0"
width="600"><%
IF (Request.Querystring("vis") = "alle") THEN
Tbilleder = 10
ELSE
Tbilleder = 1
END IF
DO UNTIL Tbilleder = 6 OR rs3b.EOF %>
<div align="center">
<table border="0" cellpadding="0" cellspacing="0"
width="600">
<tr>
<td class="tvramme" valign="top"><a
name="ID-<% =rs3b("ID") %>"></a></td>
<td class="tramme"></td>
</tr>
<tr>
<td class="vramme" rowspan="3"></td>
<td class="ramme" height="30" valign="top">
<p class="umargin"><b><% =rs3b("titel")
%></b> - [ <% =FormatDateTime(rs3b("dato"), vbLongDate) %>
]</p>
</td>
</tr>
<tr>
<td class="ramme"><%
dim image_directory, image_directory_short, Images_pr_Page,
Images_Horizontal
image_directory = "gfx/" & rs3b("mappe")
image_directory_short = rs3b("mappe")
Images_pr_Page = "9999"
Images_Horizontal = "3"
dim count_image, image, Image_Array
Set
directory=server.createobject("scripting.filesystemobject")
Set
allfiles=directory.getfolder(server.mappath(image_directory))
For each image in allfiles.files
Image_Array = Image_Array + image.Name & ","
count_image = count_image +1
Next
dim Current_Page, Total_Pages, Total_Images, Page_Name
Page_Name = request.servervariables("script_name")
Total_Images = count_image
Current_Page = request.querystring("paging")
If Current_Page = "" or Current_Page = "0" then
Current_Page = "1"
end if
Total_Pages = (Total_Images/Images_pr_Page)
if Total_Pages > int(Total_Pages) then
Total_Pages = int(Total_Pages) + 1
end if
Image_Array = split(Image_Array,",")
dim First_Image, Last_Image
First_Image = ((Current_Page-1)*(Images_pr_Page))+1
If First_Image = "0" then
First_Image = "1"
end if
Last_Image = (Total_Images-First_Image)
if cint(Last_Image) > cint(Images_pr_Page) then
Last_Image = round(First_Image-1) + round(Images_pr_Page)
else
Last_Image = (First_Image + Last_Image)
End if
response.write "<table style=""width:500;"">" & vbCrLf
dim Count_Image_Prints, td_width
Count_Image_Prints = 0
td_width = int(100 / Images_Horizontal)
dim I
For I = (First_Image-1) to (Last_Image-1)
Count_Image_Prints = Count_Image_Prints + 1
If int(Count_Image_Prints) = int("1") then
response.write "<tr>" & vbCrLf
end if
response.write "<td width=""33%"" align=""center"">" &_
"<a href=""?page=billeder&visstor="&
image_directory_short &"-stor/"& Image_Array(I) &""">" &_
"<img src="""& image_directory &"/"& Image_Array(I)
&""">" &_
"</a>" &_
"</td>" & vbCrLf
If int(Count_Image_Prints) = int(Images_Horizontal)
then
response.write "</tr>" & vbCrLf
Count_Image_Prints = 0
end if
Next
response.write "</tr>" & vbCrLf &_
"</table>" & vbCrLf %>
<p class="navigation" align="right">[ <a
href="#" class="navigation">top</a> ]</p>
</td>
</tr>
<tr>
<td height="30"></td>
</tr><%
rs3b.MoveNext
Tbilleder = Tbilleder + 1
Image_Array = ""
LOOP %>
Plz hjælp ! :D - hilsen Dennis.
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials