AjaxHandler
1.0.0
switch
again.Are you tired of writing the same Ajax handler code over and over again on your each project? There are always the same steps and same problems, is it handling headers correctly? Will it work with jQuery? Status Codes? JSONP?
Well, I've collected all the code pieces together and created the AjaxHandler. It's a very simple PHP Class which you can inherit and create your own Ajax handlers easily.
Here is a list of features Ajax Handler provides
json_encode
when outputting.Here is a very basic example of AjaxHandler in Use lets say this is person.php
<?php
include "AjaxHandler.php";
class Person extends AjaxHandler{
/**
* Private function will not be accessed from outside
* @return Mongo Collection
*/
private function getMongo(){
$m = new Mongo();
$db = $m->selectDB('main');
$cl = $db->selectCollection('people');
return $cl;
}
/**
* All I write here is the code
* I didn't write anything to handle output
* If the code gives an exception, ajax
* handler will return error, If Everything is successfull
* Standart success message will be returned
* @return [type] [description]
*/
public function createPerson(){
$db = $this->getMongo();
$result = $cl->save(array(
"name" => $this->get('name'),
"age" => $this->get('age')
));
}
/**
* Here is the code for handling your own messages
* @return [type] [description]
*/
public function getPersonDetails(){
$db = $this->getMongo();
$cursor = $db->fetch(array('name' => $this->get('name')));
if($cursor->count() === 0){
// Will produce an error
// {"success": false, "error": "Person cannot be found"}
$this->error('Person cannot be found');
}else{
// Will giveout a JSON success message
// {
// "success": true,
// "details":{"name":"john", "age":"29"},
// "message":"Operation successful"
// }
$this->success(array(
"details"=>$cursor->first()
));
}
}
}
?>
You can make requests with jQuery easily
$.ajax({
url:'person.php',
data:{
action: 'createPerson',
name: 'john',
age: 29
},
dataType:'json',
complete: function(res){
if(res.success){
alert('User Saved');
}else{
alert('Error: '+ res.error);
}
}
});
I'll write a more detailed documentation soon.