总共分成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 = 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
class logincontroller {
private $result;
function logincontroller() {
//初始化数据库连接等参数
}
function login($args) {
//具体的登录逻辑
}
function getresult() {
return $this->result;
}
}
?>
意思所述就是本文的全部内容了,希望大家能够喜欢。
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!