总共分成3大部分来完成PHP的ajax调用逻辑,以下是大致的结构
第一部分:ajax请求:主要是action这个参数,LoginController是PHP的类名,login是LoginController这个类中的函数名
PHP;">
$('#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 = 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();
}
}
?>
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,这个文件是具体的功能类
PHP;">
result;
}
}
?>
意思所述就是本文的全部内容了,希望大家能够喜欢。
原文链接:https://www.f2er.com/php/21497.html