While working with AJAX, you will need to get data after sending request to the server. You can use three ways to get the data form the server.
- In xml Format
- HTML Format
- Json Format
Though xml has several advantages, however processing data at the client will put extra burden.
HTML, can easily be handle, is however more resource or you can say bandwidth extensive.
So JSON fall in the middle of both.
PHP provide a very easy way to create JSON response. Once you get data at client side you will need much later code to process response than xml document.
Let’s first look at the server side.
For example we have the following array.
$data = array(‘items’=>array(‘firstname’=>’faheem’, ‘lastname’=>’abbas’,’address’=>’pakistan’));
To create JSON response, simply write
echo json_encode($data);
This will give the following result
{“items”:{“firstname”:”faheem”,”lastname”:”abbas”,”address”:”pakistan”}}
Now at the client side to send AJAX request, you will need to create the following code.
Keep in mind that we are using prototype for making AJAX request.
<script>
function getData()
{
new Ajax.Request(
“http://localhost/getdata.php”, /* this is url of the php file that create JSON response.*/
{
method:’post’,
onSuccess: processData
}
);
}
function processData(rsp)
{
var response = eval(‘(‘ + rsp.responseText + ‘)’);
var firstname = response.items(0).firstname;
var lastname = response.items(0).lastname;
var address = response.items(0).address;
}
</script>
nice example,
it would be nice to see a followup with a zend framework controller as a back-end since.
you can use Zend_Dojo_Data and its method toJson() for creating JSON response in your controller.
It pretty easy if you are using Zend Framework.
I’ve already write about it.
Thanks for simple, yet useful example.
Regards,
Ahmed