Avatar billede krel Nybegynder
24. juli 2007 - 13:08 Der er 30 kommentarer og
2 løsninger

Billedfader fra DB

Hej derude.
Jeg har dette script jeg godt kunne bruge lidt hjælp til at omskrive lidt:
<script language="JavaScript1.1">
var slidespeed=3000
var slideimages=new Array("grafik/banner/roskilde.png","grafik/banner/novo.png","image3.gif")
var slidetekst=new Array("Orange scene; roskildefestival 'o6","Parken; novonordisk's sommerfest","ingen tekst")
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>
</head>
<body>
<img src="image1.gif" name="slide" border="0" style="filter:blendTrans(duration=3)" width="595px" height="100px">
<script language="JavaScript1.1">
var whichlink=0
var whichimage=0
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=(whichimage<slideimages.length-1)? whichimage+1 : 0
setTimeout("slideit()",slidespeed+blenddelay)
}
slideit()
</script>

Jeg ville gerne lave det sådan at billedstien blev hentet fra et felt i db'en og det samme med teksten..
linien der indeholder:
var slidetekst=new Array("Orange scene; roskildefestival 'o6","Parken; novonordisk's sommerfest","ingen tekst")
har jeg selv tilføjet, men ikke i selvefunktionen så den er ikke med når siden vises - det skulle den gerne ende med :)

desuden har jeg set noget fra et andet script hvor man havde listet billederne + tekst op noget ala sådan her:
[0] ["image1.gif","tekst til billede"]
[1] ["image2.gif","tekst til billede"]
[2] ["image3.gif","tekst til billede"]
osv..

måske det var smartere når jeg nu skal have fat i db'en...??

mvh.
Kristian
Avatar billede morten-vadskaer Praktikant
24. juli 2007 - 15:12 #1
Er det en MySQL-db, du ska' have fat i, kan du måske med fordel bruge lidt Ajax.
Avatar billede krel Nybegynder
24. juli 2007 - 15:23 #2
det er MS Access 2003 (desværre?)
Avatar billede w13 Novice
24. juli 2007 - 15:33 #3
Ajax er dog overflødigt, medmindre der hele tiden vil være nye billeder, der er blevet uploadet, som med fordel kan hentes ind vha. Ajax - men skal man lytte til gode gamle ekspertenbruger Olebole (og det bør man jo nok), så er Ajax ikke så lige til og sløver både hjemmesiden og serveren.

Så jeg ville nok forsøge noget à la:
------------------------------------------------
<%Set rs = Server.CreateObject("ADODB.RecordSet")
Set Conn = Server.CreateObject("ADODB.Connection")
strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/database.mdb")
Conn.Open strDSN

Dim i
Dim strSlideimages
Dim strSlidetekst

Set rs=Conn.Execute("SELECT [url], [text] FROM [slideimages]")
Do While Not rs.EOF
    If i>0 Then
        strSlideimages=strSlideimages&","
        strSlidetekst=strSlidetekst&","
    End If
    strSlideimages=strSlideimages&""""&rs("url")&""""
    strSlidetekst=strSlidetekst&""""&rs("text")&""""
    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>
</head>
<body>
<img src="image1.gif" name="slide" border="0" style="filter:blendTrans(duration=3)" width="595px" height="100px">
<script language="JavaScript1.1">
var whichlink=0
var whichimage=0
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=(whichimage<slideimages.length-1)? whichimage+1 : 0
setTimeout("slideit()",slidespeed+blenddelay)
}
slideit()
</script>

<%Conn.Close
set rs = Nothing
set Close = nothing
set Conn = nothing%>
------------------------------------------------
Ovenstående er dog lavet til en Access DB, da det er det, jeg oftest selv arbejder med. Bruger du Access?
I min kode hedder databasen "database.mdb" og ligger i mappen "db" i roden af sitet. Tabellen databasen hedder "slideimages" og har felterne "url" og "text". Prøv at se, om du kan få det til at virke.
Avatar billede krel Nybegynder
24. juli 2007 - 15:58 #4
Har fået rettet det til så det passer med mine egne data og selve billedefaderen virker også helt fint. Men jeg kan ikke se teksten..?
Avatar billede krel Nybegynder
24. juli 2007 - 17:35 #5
w13?? er du der?
jeg kan ikke rigtig se hvor tekst-delen optræder i det script i bodyen??
- er det mig der er helt væk eller mangler det?

/Kristian
Avatar billede w13 Novice
24. juli 2007 - 17:42 #6
Ja, det mangler vist i selve body-koden. Men jeg må indrøme, at jeg ikke lige er sikker på, hvad der skulle tilføjes, for at det skulle være med også. Jeg har bare genereret array'et "slidetekst", som det så kan hentes fra.
Avatar billede krel Nybegynder
24. juli 2007 - 17:48 #7
okay.. i det andet spm skrev du at man godt kunne lave en fuktion så det ikke var den samme rækkefølge eller samme startbillede hver gang fukntionen reloades.... noget du vil løfte sløret for?
Avatar billede w13 Novice
24. juli 2007 - 17:55 #8
Jeg tror bare, du skal rette:
whichimage=(whichimage<slideimages.length-1)? whichimage+1 : 0
til:
whichimage=Math.random()+1 * slideimages.length;
Avatar billede krel Nybegynder
26. juli 2007 - 18:54 #9
hmm det virker ikke lige umiddelbart...

Nogen der har et bud på hvordan jeg så får hevet teksten ud samme med billedet evt. sådan at jeg kan have billedet i en celle i en tabel og teksten i en anden celle i samme tabel....?

/kristian
Avatar billede w13 Novice
26. juli 2007 - 19:09 #10
Giver den fejl?
Avatar billede krel Nybegynder
27. juli 2007 - 09:10 #11
den loader kun første billede og så melder siden fejl i statusbaren...

...følgende fejlbeskrivelsee:
linie: 33
tegn:  1
fejl:  'imageholder[...]src' er null eller ikke et objekt
kode:  0
...

/kristian
Avatar billede w13 Novice
27. juli 2007 - 14:47 #12
Hmm.. Men det virkede med den forrige kode?
Avatar billede krel Nybegynder
29. juli 2007 - 14:14 #13
-->
ja det hele fungerede fint inden...
Avatar billede w13 Novice
29. juli 2007 - 16:54 #14
Hmm.. Hvad hvis du har begge linjer?

whichimage=(whichimage<slideimages.length-1)? whichimage+1 : 0;
whichimage=Math.random()+1 * slideimages.length;
Avatar billede krel Nybegynder
30. juli 2007 - 13:07 #15
desvæære.. så er vi tilbage til samme fejlmeddelse som <27/07-207 09:10:33>
Avatar billede olebole Juniormester
30. juli 2007 - 14:37 #16
<ole>

whichimage=Math.random()+1 * slideimages.length;

- nej, men:

whichimage = Math.floor(Math.random()*slideimages.length);

/mvh
</bole>
Avatar billede w13 Novice
30. juli 2007 - 14:46 #17
Nåja :P
Avatar billede krel Nybegynder
31. juli 2007 - 18:41 #18
->> Ole?
nu fader den fint igen men ved reload (F5) hentes det samme billede hver gang (har prøvet at trykke rigtig mange gange..)

Du skulle vel ikke også side med et hint til hvordan jeg kan få teksten til det bestemte billede til at fade med i en anden tabel end den der vises billedet i vel Ole..?

noget ala det her:
<table>
  <tr>
    <td>(billedet vises her)</td>
    <td>(teksten vises her)</td>
  </tr>
</table>

mvh.
kristian
Avatar billede krel Nybegynder
02. august 2007 - 21:24 #19
Ole?? du sku ikke have en ide vel??
Avatar billede olebole Juniormester
02. august 2007 - 21:56 #20
Sorry ... jeg får ikke ret mange af de mails fra E, som jeg burde. Det plejer at være noget med et cronjob, der hænger  :o|

<script language="JavaScript1.1">
var whichlink = whichimage = Math.floor(Math.random()*slideimages.length);
... osv ... osv ...

- så skulle den vælge første billede, random.

Såvidt jeg husker, har roenving engang lavet en løsning med flere instanser af et slideshow på samme side. Hvis han kommer forbi denne tråd, må han meget gerne linke. Ellers prøver jeg lige, om jeg kan finde eksemplet  =)
Avatar billede olebole Juniormester
02. august 2007 - 21:59 #21
Avatar billede krel Nybegynder
30. august 2007 - 23:45 #22
når mon ikk der skal gives nogle point snart.... ;) smider i begge et svar syns i har gjort jeres begge to.

lige prikken over i'et med hensyn til random:
Ved godt at jeg ville have random, men derved kan et billede jo resikere at blive vist i 10 sek. hvis nu den vælger bil1, bil8, bil8, bil8, bil3, bil5, bil5 hvis du forstår?? kan man skrive en variabel så det bliver radom, men så samme billede ikke gentages??????

mvh.
Kristian
Avatar billede w13 Novice
31. august 2007 - 00:26 #23
Her er et svar.

Ja, du kan evt. køre random og så tjekke, om billedet er det samme som det forrige, og hvis det er, så køre random-funktionen igen.
Avatar billede krel Nybegynder
15. september 2007 - 21:11 #24
må sige at det os var min tanke.. måske et stykke tekst jeg selv kunne bygge videre på??

olebole? svar? så i kan dele point

nu er det sådan at jeg har lavet lidt om så baggrundsbillede ligger som tabelbaggrund.. Men for at overholde w3 var jeg nød til at omskrive koden til følgende:

<table style="background-image:url('../grafik/t02.png')" border="0" width="710px" id="TOP" cellspacing="0" cellpadding="0">

hvordan omskriver jeg så følgende så det passer ind i ovenstående??

name="slide" border="0" style="filter:blendTrans(duration=3)"

prøvede med .png'); name:('slide'); border:('0') osv osv men det virker bare ikke :(
Avatar billede w13 Novice
16. september 2007 - 15:27 #25
Du kan ikke lægge name ind i css på den måde. Det skal være:

<table name="slide" id="top" style="widt:710px;background-image:url('../grafik/t02.png');border:0;border-collapse:collapse;filter:blendTrans(duration=3)">
Avatar billede krel Nybegynder
17. september 2007 - 17:14 #26
jamen er det så ikke tabellen der får alle disse værdier og ikke baggrundsbilledet?? - prøver lige en gang...
Avatar billede w13 Novice
17. september 2007 - 17:19 #27
Jo. Baggrundsbilledet hører jo til tabellen og er ikke et element for sig. Det kan derfor ikke have specielle egenskaber. Du kan faktisk kun styre dets placering.
Avatar billede krel Nybegynder
17. september 2007 - 17:21 #28
syns ikk lige det virker.. måske fordi man slet ikk kan det jeg vil...

Hele dette spm har været til når jeg har haft et billede i en celle:
eks. <td><img src0"../../navn.png"></td>

Her virker det hele også fint og fader derudá :)

Men hvis jeg nu vil have billedet til at være baggrundsbillede i en tabel:
<table style="background-image:url('../grafik/t02.png')" border="0" width="710px" id="TOP" cellspacing="0" cellpadding="0">

skal der så en helt anden funktion til i stedet for eller skal jeg bare glemme det helt??

/Kristian
ps kan jeg give dig halv point og så give olebole point senere hvis han engang svare..?
Avatar billede w13 Novice
17. september 2007 - 17:37 #29
Det kan ikke lade sig gøre desværre. Det kan det kun, når det er et billedelement og ikke et baggrundsbillede.

Du kan kun give point på én gang, så vi må bare vente og se, om Ole dukker op.
Avatar billede krel Nybegynder
17. september 2007 - 17:57 #30
hmm så må jeg bare lave det hele som et stort billede i stedet for..
Avatar billede w13 Novice
22. november 2007 - 23:21 #31
Olebole? Point? :)
Avatar billede krel Nybegynder
09. juni 2008 - 14:26 #32
lader ikke til at der rigtig sker noget så Ole, hvis du ska ha point må du gi et hint.. lukker i hvert fald her.
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