Reputation: 7487
I am using jquery's ajax method to post some data to the server and get back the response. Though the server side php code is returning a json encoded string/array, the response is coming back as null.
Could someone point out the mistake that I am making. Below if my jquery ajax method using which I am hitting the postData.php page.
$.ajax({
url:'postData.php',
type:'POST',
data:data,
dataType: "json",
success: function(response){
console.log(response);
}
});
The content in postData.php is pretty straight forward as I am still developing it.
$data = array();
//inside postData.php
$data['test']=1;
return json_encode($data);
It should return a json string, but it is returning null. I also tried echoing a string just after $data array declaration, it does echo it in the firebug, but the response is when I do a console.log on the success callback, it comes back as null.
Upvotes: 0
Views: 1761
Reputation: 13435
Is that all that is in postData.php? You need to write it out to the buffer (echo json_encode($data);) at some point.
Upvotes: 2
Reputation: 2407
For getting the result back in your ajax function, you must echo it, not return, like:
$data = array();
$data['test']=1;
echo json_encode($data);
Upvotes: 3
Reputation: 290
Like morgar pointed it out, you should echo the data back and not use return.
$data = array();
$data['test']=1;
echo json_encode($data); //echo instead of return
At the same time, in your ajax on success function, you should access the response like an array.
**Incorrect**
console.log(response); //--> would return an error
**Should Be**
console.log(response[0]); //--> read the returned first array element
Upvotes: 0