div refreshen
Ik wil een div om de 5 seconde refreshen. Ik vind alleen niets over hoe ik dit moet doen. Het is dus niet de bedoeling dat de hele pagina gerefreshd word maar alleen één div.
Het beste zou nog zijn dat je het refreshen bijna niet ziet. Maar dat de gegevens bijv. eerst op de achtergrond uit de database gehaald worden.
En dat bijv de gebruikte plaatjes (die blijven wel steeds hetzelfde, alleen op een andere plaats) ook niet helemaal opnieuw opgehaald moeten worden.
Maar dit is nog wat boven mij niveau. Ik zou al blij zijn als het refreshen van een div al lukt.
Wie kan mij helpen? Mag ook dmv artikelen/tutorials op interenet ;-)
Gewijzigd op 01/01/1970 01:00:00 door Leendert
Met javascript innerHtml?
Gewijzigd op 01/01/1970 01:00:00 door leendert
- innerHTML
- document.getElementById
- setTimeout
En dat knopje heb ik trouwens niet nodig, het moet automatisch gaan.
Heb ik hier een AJAX scriptje of iets voor nodig?
Gewijzigd op 01/01/1970 01:00:00 door leendert
die kan 'refreshe' zonder dat je pagina refreshed..
refresht de div nu wel zoals het zou moten refreshen?
ondanks dat je inhoud nog niet klopt?
Gewijzigd op 01/01/1970 01:00:00 door Marvin S
tenminste dit zinnetje in jou code word nergens getoond:
self.status = "Hier staat mijn boodschap voor in de div"
De php codes tussen de div tags worden niet uitgevoerd.
Dus zeker tog AJAX nodig?
de self.status is de statusbar
daar staat als het goed is wel die regel dan
dat was even om te kijken of die timer zijn werk zou doen
een ogenblik even uittikken
Maak een bestand extern.htm aan met de volgende inhoud:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<script language="JavaScript1.2">
var delay=5000 // 5 seconde
var ie4=document.all
var curindex=0
var totalcontent=0
function get_total()
{
if (ie4){
while (eval("document.all.content"+totalcontent))
totalcontent++
}else{
while (document.getElementById("content"+totalcontent))
totalcontent++
}
}
function contract_all()
{
for (y=0;y<totalcontent;y++)
{
if (ie4)
eval("document.all.content"+y).style.display="none"
else
document.getElementById("content"+y).style.display="none"
}
}
function expand_one(which)
{
contract_all()
if (ie4)
eval("document.all.content"+which).style.display=""
else
document.getElementById("content"+which).style.display=""
}
function rotate_content()
{
get_total()
contract_all()
expand_one(curindex)
curindex=(curindex<totalcontent-1)? curindex+1: 0
setTimeout("rotate_content()",delay)
}
window.onload=rotate_content
</script>
<body bgcolor=#000>
<!-- #1 begin -->
<div id="content0" style="display:none">
<!-- hier je php code -->
</div>
<!-- #1 eind -->
<!-- #2 begin -->
<div id="content1" style="display:none">
<!-- hier je php code -->
</div>
<!-- #2 eind -->
var delay=5000 // 5 seconde
var ie4=document.all
var curindex=0
var totalcontent=0
function get_total()
{
if (ie4){
while (eval("document.all.content"+totalcontent))
totalcontent++
}else{
while (document.getElementById("content"+totalcontent))
totalcontent++
}
}
function contract_all()
{
for (y=0;y<totalcontent;y++)
{
if (ie4)
eval("document.all.content"+y).style.display="none"
else
document.getElementById("content"+y).style.display="none"
}
}
function expand_one(which)
{
contract_all()
if (ie4)
eval("document.all.content"+which).style.display=""
else
document.getElementById("content"+which).style.display=""
}
function rotate_content()
{
get_total()
contract_all()
expand_one(curindex)
curindex=(curindex<totalcontent-1)? curindex+1: 0
setTimeout("rotate_content()",delay)
}
window.onload=rotate_content
</script>
<body bgcolor=#000>
<!-- #1 begin -->
<div id="content0" style="display:none">
<!-- hier je php code -->
</div>
<!-- #1 eind -->
<!-- #2 begin -->
<div id="content1" style="display:none">
<!-- hier je php code -->
</div>
<!-- #2 eind -->
VOORBEELD:
Gewijzigd op 01/01/1970 01:00:00 door Marvin S
Ik ga kijken of ik er wat mee kan.
Ik ben nu trouwens naar AJAX aan het kijken:
Ik heb al dat de div dmv AJAX gevuld word met gegevens uit een php bestand die het weer uit de database haalt.
Als ik op een knopje drukt word de div opnieuw gevuld zonder dat de pagina refreshd.
Wat ik nu dus nog moet is dat de Ajaxfunctie om de 5 seconde uitgevoerd word.
is de bedoeling dat je standaard om de 5 seconden een div 'rotate'
krijgt? met daarin steeds nieuwe info uit de db?
zoja dan ben je toch klaar? dan moet je alleen die stukken PHP code hier
plaatsen:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<!-- #1 begin -->
<div id="content0" style="display:none">
<?php
$query = "SELECT blaaaaaaaaaaaaaaaaaaa";
$uitvoer = mysql_query($query) or die (mysql_error());
?>
</div>
<!-- #1 eind -->
<div id="content0" style="display:none">
<?php
$query = "SELECT blaaaaaaaaaaaaaaaaaaa";
$uitvoer = mysql_query($query) or die (mysql_error());
?>
</div>
<!-- #1 eind -->
je ziet dus geen refresh.
het werkt alleen nog niet helemaal in IE :S
Die blijft de oude gegevens onthouden, egt vaag.
Quote:
het werkt alleen nog niet helemaal in IE :S
Die blijft de oude gegevens onthouden, egt vaag.
Die blijft de oude gegevens onthouden, egt vaag.
Dat komt omdat IE een cache bijhoudt en dus hoeft ie niet alles te herladen van de pagina. Alleen de veranderingen. IE weer ¬_¬
je wil een serie plaatsen een voor een voorbij laten komen?