当前位置:Gxlcms > PHP教程 > php模块化供前端ajax调用的实现ajaxphppostjqueryajaxphpajax分

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

时间:2021-07-01 10:21:17 帮助过:1人阅读

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

  • 人气教程排行