When I try to get the response from a php file using Jquery ajax, I just get (an empty string) (Accdg. to Firebug console using console.log(data))
Here’s the Html code:
<form action="test.php" method="POST" id="ajax">
<input type="text" name="field" />
<input type="submit" value="submit" name="submit" />
</form>
Here’s the Jquery code:
$('#ajax').submit(function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
data: $(this).serialize(),
url: 'test.php',
cache: false,
success: function(data) {
alert(data);
}
});
return false;
});
And the PHP code:
if ($_POST['submit'] == "submit")
{
echo 'Got your request';
}
Just basic. What frustrates me is that it’s straightforward, I’ve done some research and still it doesn’t work. I also want it to be as simple as possible.
Please enlighten me.
Don’t check to see if you’re in a POST situation by checking for fieldnames. That’s incorrect – you might change your client-side form names and forget to update the PHP check.
The 100% reliable method is to use:
However, since you just want to see if the server got pinged at all by your ajax call, why not do:
Which’d just return
Got your POST requestorGot your GET request, etc…As well, check your server log (or use HTTPFOX/Firebug Net tab, etc…) to see if that ajax request is actually going out and being received by the server.