php模块化供前端ajax调用的实现 ajax php post jquery ajax php ajax分

php教程评论733 views阅读模式

背景:没有使用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教程有兴趣的朋友有所帮助。

    企鹅博客
    • 本文由 发表于 2019年9月21日 09:05:00
    • 转载请务必保留本文链接:https://www.qieseo.com/322971.html

    发表评论