[英]How to call php functions and NOT php class in an AJAX call
这是一个非常简单而愚蠢的问题,我要问:
我是PHP的新手,我想知道是否有一种方法可以通过AJAX调用PHP类中的函数。
例如这样的事情:
$.ajax({
url:'newPHPClass.php/My_Function_Name'
...
});
所以在php中,它会像:
<?php
class newPHPClass {
function My_Function_Name(){
}
}
?>
我为什么需要这个? 所以我不会喜欢这么多的php文件。 相反,我将拥有一个内部具有不同功能的php类。 它看起来更干净,文件更少。
我之前使用过ASP.NET MVC C#。 在ASP.NET中我可以简单地将我的控制器名称放在AJAX的URL部分中,然后是/
然后是我的函数名称(可以在我的Global.asax.cs文件中修改)。
谢谢。
<?php
$action = $_POST['action'];
class Foo {
function execute($action) {
switch($action) {
case "method1":
$this->doMethod1();
break;
case "method2":
$this->doMethod2();
break;
}
}
function doMethod1() {
echo "Foo::doMethod1";
}
function doMethod2() {
echo "Foo::doMethod2";
}
}
$foo = new Foo();
$foo->execute($action);
?>
并使用foo.php?action=method1
作为URL。
首先你不要通过Ajax 调用的函数或方法,您对网页的请求。 如果您对PHP文件进行AJAX调用,例如:
<?php
class newPHPClass {
function My_Function_Name(){
}
}
?>
什么都不会被返回,除了为该类分配空间然后在请求结束时立即销毁它之外,服务器端不会发生任何事情。
对于你的问题:在客户端(Javascript)如何管理类和文件组织并不重要:AJAX调用只会请求一个文件。
我建议您至少有两个不同的文件:函数或类的声明以及管理响应的文件。 你需要与执行和声明分开一点,因此我会避免这样的事情:
class A { ... }
$a = new A;
$a->myMethod();
根据AJAX输出,我会改为:
# class.php
class A {...}
# ajax.php
$a = new A;
$a->myMethod();
最后一个建议:当他们没有意义时,不要使用课程。 将一堆函数分组到一个类中并不会让我真正感受到OOP。 我认为您正在使用具有过程代码的类。 因此,我会使用一个声明一堆函数的文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.