Avatar billede krel Nybegynder
14. februar 2008 - 20:13 Der er 7 kommentarer og
1 løsning

fra mappe i stedet for fra DB?

Hej derude.
Jeg fik for noget tid siden hjælp herinde til at stykke noget javascript sammen så den kunne blande billederne der lå i en database - Hvilket kom til at fungere lige som det skulle,

MEN nu tænker jeg så om man ikke kan lave denne funktion med en mappe på webstedet i stedet for fra en database?

håber den gamle kode kan nøjes med at modernisere en smule??

# <head>
<%Set rs = Server.CreateObject("ADODB.RecordSet")
Set Conn = Server.CreateObject("ADODB.Connection")
strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../../../fpdb/seelite.mdb")
Conn.Open strDSN

Dim i
Dim strSlideimages
Dim strSlidetekst

Set rs=Conn.Execute("select [imgfile], [tekst] from [topbanner]")
Do While Not rs.EOF
    If i>0 Then
        strSlideimages=strSlideimages&","
        strSlidetekst=strSlidetekst&","
    End If
    strSlideimages=strSlideimages&""""&rs("imgfile")&""""
    strSlidetekst=strSlidetekst&""""&rs("tekst")&""""
    i=i+1
    rs.MoveNext
Loop
rs.Close%>
<script language="JavaScript1.1">
var slidespeed=3000
var slideimages=new Array(<%=strSlideimages%>)
var slidetekst=new Array(<%=strSlidetekst%>)
var imageholder=new Array()
var ie=document.all
for (i=0;i<slideimages.length;i++){
imageholder[i]=new Image()
imageholder[i].src=slideimages[i]
}
</script>

# <body>
<img src="image1.gif" name="slide" border="0" style="filter:blendTrans(duration=3)" width="595px" height="100px">
<script language="JavaScript1.1">
        var whichlink = whichimage = Math.floor(Math.random()*slideimages.length);
        var blenddelay=(ie)? document.images.slide.filters[0].duration*1000 : 0
        function slideit(){
        if (!document.images) return
        if (ie) document.images.slide.filters[0].apply()
        document.images.slide.src=imageholder[whichimage].src
        if (ie) document.images.slide.filters[0].play()
        whichlink=whichimage
        whichimage = Math.floor(Math.random()*slideimages.length);
        setTimeout("slideit()",slidespeed+blenddelay)
        }
        slideit()
        </script>

Eller er det nemmere bare at starte på en frisk med et helt nyt stykke script

mvh.
Kristian
Avatar billede thesurfer Nybegynder
14. februar 2008 - 22:16 #1
ASP koden til generering af liste over billedetyper, f.eks. gif, jpg, jpeg (du kan selv tilføje flere), ved at kalde GetImages..

Her er ASP koden:

Function GetImages()
Dim stien, tilladte_filtyper



' ----- Rediger disse oplysninger:

' * Stien til mappen med billederne ("." er den nuværende mappe, som ASP filen ligger i):
stien = "."

' * Her indtaster du de filtyper der skal med i listen (filtypen omkrandses af "," (komma) ):
tilladte_filtyper = ",gif,jpg,jpeg,"

' ----- Redigering STOP!



Dim file, files, fso, folder
Set fso = CreateObject("Scripting.FileSystemObject") 
Set folder = fso.GetFolder(Server.MapPath(stien))
Set files = folder.Files

Dim filetype, strSlideimages
strSlideimages = ""

' Løb filerne igennem
For Each file in files
   
    ' Find filtypen:
    filetype = Mid(file.name, InstrRev(file.name, ".") + 1)

    ' Hvis det er en tilladt filtype, tilføjes den til listen:
    If InStr(tilladte_filtyper, "," & filetype & ",") > 0 Then strSlideimages = strSlideimages & """" & file.name & """" & ","
Next

' Frigør resoucerne igen:
Set files = Nothing
Set folder = Nothing
Set fso = nothing

' Fjern det sidste komma hvis det er nødvendigt
If Right(strSlideimages, 1) = "," Then strSlideimages = Left(strSlideimages, Len(strSlideimages) - 1)

' Returner listen:
GetImages = strSlideimages
End Function


Du bruger koden sådan her:

var slideimages=new Array(<%=GetImages%>);


Så kan du fjerne disse linier fra din eksisterende kode:

* Dim strSlideimages

* strSlideimages=strSlideimages&","

* strSlideimages=strSlideimages&""""&rs("imgfile")&""""
Avatar billede thesurfer Nybegynder
14. februar 2008 - 22:18 #2
PS:

Læg mærke til området mellem linien

' ----- Rediger disse oplysninger:

og linien

' ----- Redigering STOP!


Det er den eneste del af koden du skal redigere i..

Du skal nemlig fortælle koden hvor den skal kigge (stien) og hvad der skal tilføjes til listen (tilladte_filtyper)..

Det burde være lige til.. men skriv hvis du har problemer med at få det til at virke..
Avatar billede krel Nybegynder
19. februar 2008 - 00:35 #3
jamen det kører da en eller anden form for fade kan jeg se...
- desværre uden mine billeder...

jeg har mit websted:

root
:. grafik
    :. slide (her ligger de billeder som ska bruges
index.asp (denne side scriptet kører på)

derfor ville jeg mene at der sku stå følgende i:
' * Stien til mappen med billederne ("." er den nuværende mappe, som ASP filen ligger i):
stien = "grafik/slide"

men så er der ingen billeder (hjælp!?)
Avatar billede cpufan Juniormester
19. februar 2008 - 21:03 #4
stien = "slide/"
Avatar billede krel Nybegynder
19. februar 2008 - 22:07 #5
^^
Så er vises ingen af mine tabeller overhovedet (siden er opbygget i tabeller)
Avatar billede krel Nybegynder
20. februar 2008 - 00:06 #6
hmm ingen derude?
prøver lige at forklare opbygning på websted igen:

filen: root/index.asp
mappen: root/grafik/slide/ (mappen slide ligger mine billeder i)

så forstår ikke helt hvor kun slide skulle ku gøre det?.
Avatar billede thesurfer Nybegynder
20. februar 2008 - 01:56 #7
Se lige om du ikke kan få den ønskede virkning med denne linie:

    If InStr(tilladte_filtyper, "," & filetype & ",") > 0 Then strSlideimages = strSlideimages & """" & stien & file.name & """" & ","

Jeg har bare indsat stien..

Din sti skal så være:


stien = "grafik/slide/"



HUSK: stien skal afsluttes med et "/"
Avatar billede krel Nybegynder
20. februar 2008 - 12:31 #8
Jamen det jo perfect!
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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