| 
<?php
 //SmartAjaxController functions as output generator for AJAX response
 class SmartAjaxController {
 
 //here we store the array sent as response
 private $returnArray=array();
 
 //here we store all the input variables
 private $inputVariables=array();
 
 public function __construct(){
 if(extension_loaded('zlib')){ob_start('ob_gzhandler');} else {ob_start();}
 }
 
 //Here we parse the serialized input variable string to proper input variables
 public function setInputVariables($data){
 if(!empty($data)){
 parse_str($data,$this->inputVariables);
 }
 }
 
 //Here we return an input variable for use
 public function getVar($key){
 if(isset($this->inputVariables[$key])){
 return $this->inputVariables[$key];
 } else {
 return false;
 }
 }
 
 //assigning a new key for returning
 public function setKey($key,$value){
 if($key!=''){
 $this->returnArray[$key]=$value;
 }
 }
 
 // When class serves no further purpose we echo the response
 public function output(){
 header('Content-Type: text/html; charset=utf-8');
 header('Content-Encoding: gzip');
 if(empty($this->returnArray)){
 $this->setKey('error',1);
 $this->setKey('message','Nothing to return!');
 }
 echo json_encode($this->returnArray);
 ob_end_flush();
 }
 
 }
 ?>
 |