Ajax-post request werkt niet
index.php
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="nl">
<head>
<!-- no cache headers -->
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Cache-Control" content="no-cache" />
<!-- end no cache headers -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<!-- CSS Stylesheet -->
<style type="text/css">
</style>
<script type="text/javascript" src="./ajax.js"></script>
<title>Wesdesignz - Rescripting your website!</title>
</head>
<body>
<form method="post" action="./test.php">
<input type="text" name="username" id="username" value="" /> <input type="submit" value="Verstuur formulier" onclick="javascript: load('./test.php', 'POST', 'answer'); return false;" />
</form>
<hr size="1" />
<div id="answer">Laad de url</div>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="nl">
<head>
<!-- no cache headers -->
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Cache-Control" content="no-cache" />
<!-- end no cache headers -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<!-- CSS Stylesheet -->
<style type="text/css">
</style>
<script type="text/javascript" src="./ajax.js"></script>
<title>Wesdesignz - Rescripting your website!</title>
</head>
<body>
<form method="post" action="./test.php">
<input type="text" name="username" id="username" value="" /> <input type="submit" value="Verstuur formulier" onclick="javascript: load('./test.php', 'POST', 'answer'); return false;" />
</form>
<hr size="1" />
<div id="answer">Laad de url</div>
</body>
</html>
ajax.js :
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
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
function load(url, mode, answer)
{
var xmlHttp;
try
{
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange = function()
{
if ( xmlHttp.readyState == 4 )
{
document.getElementById( answer ).innerHTML = xmlHttp.responseText;
}
}
xmlHttp.open(mode, url, true );
if ( mode == 'POST' )
{
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
}
xmlHttp.send( null );
}
{
var xmlHttp;
try
{
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange = function()
{
if ( xmlHttp.readyState == 4 )
{
document.getElementById( answer ).innerHTML = xmlHttp.responseText;
}
}
xmlHttp.open(mode, url, true );
if ( mode == 'POST' )
{
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
}
xmlHttp.send( null );
}
Het antwoord:
POST
Array
(
)
POST komt van $_SERVER['REQUEST_METHOD'] af.
Array () = print_r( $_POST );
Gewijzigd op 01/01/1970 01:00:00 door ToySoldier ZegIkNiet
2. Download en installeer firebug.
3. Voer de request nogmaals uit, en kijk nu wat firebug zegt.
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
hier eens naar bijvoorbeeld.
Gebruik een framework zoals mootools of Jquery. Op die manier krijg je op een gemakkelijke manier een ajax request die overal werkt. Kijk maar TS, ik denk dat je je antwoord op phphulp niet gaan vinden, spijtig genoeg.
Ik heb hier namelijk ook al enkele AJAX vraagjes gezet maar deze bleven onopgelost...probeer eens W3schools.com ofzo...
(dit is niet aanvallend bedoel jongens ;) )
wat Jezpur zegt doe je best wel, die firebug is echt handig...zo zie je welke waarden er gestuurd worden etc en ben je zeker :)
@ PHP Newbie: Ik gebruik normaal Mootools maar ik die kan je niet inline gebruiken, wat voor mij makkelijker is dan alles via classes en dergelijke aanroepen.
@ Tikkes: Zal nog eens met Firebug kijken dan..
Ik heb gekeken, zonder succes.. Het verzoek word perfect gestuurd en opgehaalt, maar de $_POST variable is gewoon leeg.
Gewijzigd op 01/01/1970 01:00:00 door ToySoldier ZegIkNiet
ToySoldier schreef op 21.11.2008 17:57:
@ Jezpur: Ik werk al met firebug en mozilla firefox ;)
Waarom maak je daar dan geen gebruik van? Die heeft al lang aangegeven wat er hier fout zit.
Wat is er dan fout? Alles word gestuurd, de $_SERVER['REQUEST_METHOD'] is post, maar toch is de $_POST var leeg?
Iemand enig idee? (Ja, ik weet dat bumpen niet mag. Maar als ik niet bump duurt 't nog wel even voor ik een antwoord krijg)
Maar eh, ik zie nergens dat jij iets van post vars mee stuurt, dus welke data verwacht jij dan te zien in je POST?
Er zijn geen standaard POST variabelen hoor, de POST array is gewoon leeg als er geen POST data mee wordt gestuurd
Code (php)
1
2
3
2
3
<form method="post" action="./test.php">
<input type="text" name="username" id="username" value="" /> <input type="submit" value="Verstuur formulier" onclick="javascript: load('./test.php', 'POST', 'answer'); return false;" />
</form>
<input type="text" name="username" id="username" value="" /> <input type="submit" value="Verstuur formulier" onclick="javascript: load('./test.php', 'POST', 'answer'); return false;" />
</form>
Hoort dat niet de variable 'username' mee te sturen ?
Ik zou toch even mootools erbij pakken en mootools dat laten afhandelen, daarin wordt dat netjes geregeld.
Je moet iig nog iets extra's meegeven, het meesturen gaat (zoals ik al zei) niet automagisch
Zal eens zoeken dan.