背景:没有使用php框架
由于临时需求,需要ajax调用php中的方法,简单的写了一个php文件,文件定义了两个方法,如何用ajax分别调用同一个php文件不同的方法。
以下是abc.php文件,我定义的两个方法a方法和b方法
classabc {functiona(){echo something; } functionb($args){echo something; } } } ?>
以下是Controller.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)); } } } catch (Exception$exc) { echo$exc->getTraceAsString(); } } ?>
使用ajax调用时,使用如下写法实现只调用abc.php中的a方法:
$.ajax({
type:"POST",
url: 'Controller.php?action=abc/a',
dataType: 'json',
success: function(data) { }
});
如果需要传参数,可以这么写来调用:
$.ajax({
type:"POST",
url: 'Controller.php',
data:{ action=abc/b, 参数1: 123, 参数2: 456}
dataType: 'json',
success: function(data) { }
});
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
').text(i)); }; $numbering.fadeIn(1700); }); });
以上就介绍了php模块化供前端ajax调用的实现,包括了ajax,php方面的内容,希望对PHP教程有兴趣的朋友有所帮助。