总共分成3大部分来完成php的ajax调用逻辑,以下是大致的结构
第一部分:ajax请求:主要是action这个参数,LoginController是php的类名,login是LoginController这个类中的函数名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
$( '#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,这个文件是调用其他具体的功能类的控制器,起到枢纽作用,主要是通过反射来实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?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,这个文件是具体的功能类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?php
class LoginController {
private $result ;
function LoginController() {
//初始化数据库连接等参数
}
function login( $args ) {
//具体的登录逻辑
}
function getResult() {
return $this ->result;
}
}
?>
|
意思所述就是本文的全部内容了,希望大家能够喜欢。