title: AJAX controller in MVC
body: <p>I am building a system while at the same time learning and implementing OOP and MVC.</p>
  
  <p>The only thing I am still not sure about is how to incorporate AJAX into my MVC structure, so what I have gone with is a type of controller that responds to different "modes" from AJAX requests that accesses and returns results from the various objects in my system.</p>
  
  <p>Is this a good way to do this or am I breaking the rules of MVC by having this controller that is very different to the other controllers in my system?</p>
  
  <p>This is my AJAX "delegator":</p>
  
  <pre><code>session_start() ;
  function __autoload($classname)
  {
  include('/controllers/'.$classname.'.php') ;
  }
  
  // Deligator for contact operations.
  
  if($_POST['mode'] == 'OPPORTUNITY_COUNT')
  {
  $contactManager = new ContactManager($_SESSION['userid']) ;
  
  echo $contactManager-&gt;fetchOpportunityCount() ;
  
  }
  elseif($_POST['mode'] == 'PROSPECT_COUNT')
  {
  $contactManager = new ContactManager($_SESSION['userid']) ;
  
  echo $contactManager-&gt;fetchProspectCount() ;
  
  }
  elseif($_POST['mode'] == 'CUSTOMER_COUNT')
  {
  $contactManager = new ContactManager($_SESSION['userid']) ;
  
  echo $contactManager-&gt;fetchCustomerCount() ;
  
  }
  else
  {
  echo 'Error: Unknown mode.' ;
  exit() ;
  }
  </code></pre>
  
  <hr>
  
  <p>FYI This is how I send data to the router:</p>
  
  <pre><code>socket.on('UPDATE_OPPORTUNITY_DATA', function(date){
      $.ajax({data: 'mode=OPPORTUNITY_COUNT', success: function(data){
          $('#opportunityCount').html(data) ;
          shaker('#opportunityCount') ;
          }
      })
  })
  </code></pre>