总共分成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,这个文件是调用其他具体的功能类的控制器,起到枢纽作用,主要是通过反射来实现
<?phpif (!empty($_REQUEST["action"])) {try {$action = explode("/", $_REQUEST["action"]);$class_name = $action[0];$method_name = $action[1];require $class_name . ".php";$class = new ReflectionClass($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,这个文件是具体的功能类
<?phpclass LoginController { private $result;function LoginController() {//初始化数据库连接等参数}function login($args) {//具体的登录逻辑}function getResult() {return $this->result;}}?>意思所述就是本文的全部内容了,希望大家能够喜欢。