As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 8 years ago.
I am building a system while at the same time learning and implementing OOP and MVC.
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.
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?
This is my AJAX "delegator":
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->fetchOpportunityCount() ;
}
elseif($_POST['mode'] == 'PROSPECT_COUNT')
{
$contactManager = new ContactManager($_SESSION['userid']) ;
echo $contactManager->fetchProspectCount() ;
}
elseif($_POST['mode'] == 'CUSTOMER_COUNT')
{
$contactManager = new ContactManager($_SESSION['userid']) ;
echo $contactManager->fetchCustomerCount() ;
}
else
{
echo 'Error: Unknown mode.' ;
exit() ;
}
FYI This is how I send data to the router:
socket.on('UPDATE_OPPORTUNITY_DATA', function(date){
$.ajax({data: 'mode=OPPORTUNITY_COUNT', success: function(data){
$('#opportunityCount').html(data) ;
shaker('#opportunityCount') ;
}
})
})