背景:沒有使用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教程有興趣的朋友有所協助。