AjaxHandler
1.0.0
switch
nicht noch einmal.Sind Sie es leid, für jedes Ihrer Projekte immer wieder denselben Ajax-Handler-Code zu schreiben? Es gibt immer die gleichen Schritte und die gleichen Probleme. Werden Header korrekt verarbeitet? Funktioniert es mit jQuery? Statuscodes? JSONP?
Nun, ich habe alle Codeteile zusammengestellt und den AjaxHandler erstellt. Es handelt sich um eine sehr einfache PHP-Klasse, die Sie erben und ganz einfach Ihre eigenen Ajax-Handler erstellen können.
Hier ist eine Liste der Funktionen, die Ajax Handler bietet
json_encode
verwenden.Hier ist ein sehr einfaches Beispiel für den Einsatz von AjaxHandler. Nehmen wir an, dies ist 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 ()
));
}
}
}
?>
Mit jQuery können Sie ganz einfach Anfragen stellen
$ . 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 ) ;
}
}
} ) ;
Ich werde bald eine ausführlichere Dokumentation schreiben.