jquery auto refresh af DIV

Tags:    jscript jquery php mysql refresh

Jeg er igang med at lave en funktion på min side, hvor der øverst listes 6 tilfældige nyheder.

Jeg vil nu gerne have at disse nyheder løbende skiftes til andre nyhede - altså auto-refresh af de enkelte div's efter f.eks. 10 sekunder.

Obs. Jeg har alt koden liggende på samme side, der hedder test.php
Jeg er derfor - med hjælp fra google - kommet frem til følgende javascript-kode:
Fold kodeboks ind/udJScript kode 

Ganske kort - koden opdaterer div'et #textArea i filen test.php hvert 10 sekund.

TIl at indhente det data der skal være i div'ene har jeg følgende fetch_array og SQL kode
Fold kodeboks ind/udPHP kode 

koden udskriver 6 bokse ved siden af hinanden. Flot illustreret således:
[titel] [titel] [titel] [titel] [titel] [titel]
Og nu kommer problemet
Selve refresh-delen fungerer. Problemet er blot at den kun opdaterer den første af de seks bokse
([titel] [titel] [titel] [titel] [titel] [titel])

og ikke nok med det - så opdaterer den div'et seks gange pr. 10 sekund.

Dvs. at siden nu kommer til at se således ud:
[titel] [titel] [titel] [titel] [titel] [titel]
[titel]
[titel]
[titel]
[titel]
[titel]

Hvad skal ændres for at den løbende opdaterer de seks bokse på langs?

Tak



7 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
du udskriver dit ID inde i din while løkke, så du vil have dit ID 6steder på siden, det må kun være der en gang.

Fold kodeboks ind/udPHP kode 


lav det evt om til

Fold kodeboks ind/udPHP kode 




yep og preloading af de næste billeder, så snart nogen bliver vist. Det er bare array junglering :D



Jeg takker for hjælpen.
Jeg synes jeg havde prøvet den løsning tidligere - men nu virker det

Jeg har dog ændret det således at der er oprettet et nyt div uden om while-løkken , som den så opdaterer.

Til interesserede ser koden nu således ud:
Fold kodeboks ind/udPHP kode 




I stedet for at loade via ajax kunne du også bare loade de nyheder som du ville rotere ind med det samme. Og så skifte mellem dem via javascript.

Du kunne evt preloade billederne når siden er loadet (ved at tilføje dem til et img-tag der ikke er i dom). Så skal brugeren kun vente på at billederne loader første gang en nyhed vises. Der er ikke nogen grund til at hente det i mindre bidder hvert 10. sekund :-)

Fold kodeboks ind/udJScript kode 




Hej Gustav.

Den forstår jeg ikke.

Hvis jeg loader alle nyheder med det samme, og så blot roterer mod dem - vil loading-tiden af siden så ikke blive ekstrem lang - hvis jeg nu f.eks. har 200 nyheder/post at rotere imellem?

Hvis ikke - har du så en tutorial til hvordan jeg kan gør det.

yderligere - det med billeder.
Url til billederne ligger jo i tabellen, så hvordan vil du hente det ud med dit javascript?

mvh
Jacob



200 nyheder i fuld længde? hmm... Ja så tager det jo nok lidt tid - men det sættes først igang efter pageload anyway. Du kunne jo nøjes med at preloade et antal af dem. Men hvis de kan læses på 10sek - alle 6 - så er det jo nok ikke ret meget tekst ;-)

At hente url'erne ud af databasen er jo bare at udskrive dem som et array i din javascript kode inden du sender den til browseren. Altså få PHP til at generere dit javascript array.



nej nej - det hentes ikke ud i fuld længe.

kun overskriften samt et par linjer tekst - så vi er enige så langt..

Så det du foreslår er at jeg laver en array i javascript der indhenter f.eks. 50 af nyhederne..

og så lave en fidus, så de udskrives løbende - og når f.eks. 40 af dem er brugt, indhenter den 50 nye?



t