[Ajax] Pagina laten zien als hij geladen is.
I sinds een paar uur ben ik bezig met Ajax. Maar nu gaat het fout, ik heb nu dit scriptje
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
66
67
68
69
70
71
72
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
66
67
68
69
70
71
72
<script language="javascript" type="text/javascript">
<!--
var xmlhttp,alerted
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try
{
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e)
{
try
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e)
{
alert("Je browser moet Microsofts XML parsers beschikbaar hebben")
}
}
@else
alert("Je browser moet minstens JScript 5 ondersteunen.")
xmlhttp=false
alerted=true
@end @*/
if(!xmlhttp && !alerted)
{
try
{
xmlhttp = new XMLHttpRequest();
}
catch (e)
{
alert("Je hebt een browser nodig die het XMLHttpRequest object ondersteunt.")
}
}
function getData()
{
if(xmlhttp)
{
xmlhttp.open("GET", "pagina.php?id="+document.getElementById("naam").value, true);
xmlhttp.onreadystatechange=verwerk
xmlhttp.send(null)
}
}
function verwerk()
{
if (xmlhttp.readyState==4)
{
document.getElementById("bla").innerHTML = xmlhttp.responseText;
}
else if(xmlhttp.readyState==1)
{
document.getElementById("bla").innerHTML = 'Een ogenblik, de pagina wordt geladen...';
}
}
-->
</script>
<!-- en even verder op dit: -->
<body onload="getData();">
<noscript>Niet zo flauw, zet gewoon JavaScript aan</noscript>
<form name="form" id="form" action="ajax.php" method="post">
<input type="text" name="naam" id="naam" />
<input type="submit" value="CHeck" name="s" id="s" />
</form>
<div id="bla"></div>
</body>
<!--
var xmlhttp,alerted
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try
{
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e)
{
try
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e)
{
alert("Je browser moet Microsofts XML parsers beschikbaar hebben")
}
}
@else
alert("Je browser moet minstens JScript 5 ondersteunen.")
xmlhttp=false
alerted=true
@end @*/
if(!xmlhttp && !alerted)
{
try
{
xmlhttp = new XMLHttpRequest();
}
catch (e)
{
alert("Je hebt een browser nodig die het XMLHttpRequest object ondersteunt.")
}
}
function getData()
{
if(xmlhttp)
{
xmlhttp.open("GET", "pagina.php?id="+document.getElementById("naam").value, true);
xmlhttp.onreadystatechange=verwerk
xmlhttp.send(null)
}
}
function verwerk()
{
if (xmlhttp.readyState==4)
{
document.getElementById("bla").innerHTML = xmlhttp.responseText;
}
else if(xmlhttp.readyState==1)
{
document.getElementById("bla").innerHTML = 'Een ogenblik, de pagina wordt geladen...';
}
}
-->
</script>
<!-- en even verder op dit: -->
<body onload="getData();">
<noscript>Niet zo flauw, zet gewoon JavaScript aan</noscript>
<form name="form" id="form" action="ajax.php" method="post">
<input type="text" name="naam" id="naam" />
<input type="submit" value="CHeck" name="s" id="s" />
</form>
<div id="bla"></div>
</body>
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
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
<?php
for($i = 1; $i <= 1000; $i++)
{
for($b = 1; $b <= $i; $b++) // ik weet het is stom maar ff-kes als voorbeeld.<span style="text-decoration: strikethrough;"></span>
{
echo $b;
}
echo $i;
}
if(isset($_GET['id']) && !empty($_GET['id']))
{
if(strtolower($_GET['id']) == 'freek')
{
echo 'Heej jij heet ook Freek, dat is cool!';
}
else
{
echo '<font color="green">Heej, '.htmlspecialchars(ucfirst(strtolower($_GET['id']))).'! Alles kits?</font>"';
}
}
else
{
echo '<font color="red">Jij vuile... Denk jij dat je hiermee wegkomt? Jij vuldt godverdomme nu dat kut formuliertje in! :@</font>';
}
?>
for($i = 1; $i <= 1000; $i++)
{
for($b = 1; $b <= $i; $b++) // ik weet het is stom maar ff-kes als voorbeeld.<span style="text-decoration: strikethrough;"></span>
{
echo $b;
}
echo $i;
}
if(isset($_GET['id']) && !empty($_GET['id']))
{
if(strtolower($_GET['id']) == 'freek')
{
echo 'Heej jij heet ook Freek, dat is cool!';
}
else
{
echo '<font color="green">Heej, '.htmlspecialchars(ucfirst(strtolower($_GET['id']))).'! Alles kits?</font>"';
}
}
else
{
echo '<font color="red">Jij vuile... Denk jij dat je hiermee wegkomt? Jij vuldt godverdomme nu dat kut formuliertje in! :@</font>';
}
?>
En nu wil ik pas dat de pagina wordt weergegeven als alles is geladen. Dit gebeurd gedeeltelijk. Het formuliertje komt er te staan (dat is dus niet goed) en daaronder staat Een ogenblik, de pagina wordt geladen...
Wat doe ik fout?
Edit:
Beetje verwarend maar $_GET['id'] bevat geen id maar gewoon een string..:P
Gewijzigd op 01/01/1970 01:00:00 door Citroen Anoniem Graag
Dus zodra de pagina geladen is gaat hij pas naar functie getData() waardoor dus inderdaad eerst het formuliertje laad en dan pas de rest.
En xmlhttp.readyState==4 doet nog eens precies hetzelfde.
Het is niet echt een fout maar als je het wil veranderen zou je nog een functie speciaal voor het formuliertje kunnen maken.
Hee Thanx, het was gewoon een logica fout... Ik denk wat doe ik nu tog fout(qua syntaxt of functies of zo) maar het is gewoon DOM
wat is nu de juiste code? ben namelijk benieuwd, ksnap nu hoe ja kan kijken of pagina nog aant laden is xD ben nog vrij noob met ajax xD
kan ik aub de juiste code? xD
Manaus schreef op 17.11.2007 16:20:
Wat wil je precies weten dan?kan ik aub de juiste code? xD
dit script maar dan de juiste code wil er ook uit lere nal