ajax+php控制所有后台函数调用
总共分成3大部分来完成php的ajax调用逻辑,以下是大致的结构
第一部分:ajax请求:主要是action这个参数,LoginController是php的类名,login是LoginController这个类中的函数名
$('#submit').on('click',function(e){
e.stopPropagation();
$.ajax({
url:"../../controllers/Controller.php",
data:{
action:"LoginController/login",
username:username,
password:password
},
dataType:"text",
type:'POST',
timeout:10000,
error:function(){
alert("服务器超时");
},
success:function(data){
alert(data);
}
});
});
第二部分:Controller.php,这个文件是调用其他具体的功能类的控制器,起到枢纽作用,主要是通过反射来实现
<?php
if(!empty($_REQUEST['action'])){
try{
$action=explode('/',$_REQUEST['action']);
$class_name=$action[0];
$method_name=$action[1];
require$class_name.'.php';
$class=newReflectionClass($class_name);
if(class_exists($class_name)){
if($class->hasMethod($method_name)){
$func=$class->getmethod($method_name);
$instance=$class->newInstance();
$func->invokeArgs($instance,array($_REQUEST));
$result=$instance->getResult();
echo$result;
}
}
}catch(Exception$exc){
echo$exc->getTraceAsString();
}
}
?>
第三部分:LoginController.php,这个文件是具体的功能类
<?php
classLoginController{
private$result;
functionLoginController(){
//初始化数据库连接等参数
}
functionlogin($args){
//具体的登录逻辑
}
functiongetResult(){
return$this->result;
}
}
?>
意思所述就是本文的全部内容了,希望大家能够喜欢。