从AJAX调用PHP函数?

从AJAX调用PHP函数?,php,ajax,Php,Ajax,我使用了很多AJAX调用 data: {action: "get_categories", etc..} if(isset($_POST['action']) && ($_POST['action'] == 'get_categories')) { //do stuff } 然后在我的PHP中我会说 data: {action: "get_categories", etc..} if(isset($_POST['action']) && ($_POST['

我使用了很多AJAX调用

data: {action: "get_categories", etc..}
if(isset($_POST['action']) && ($_POST['action'] == 'get_categories')) { 
//do stuff
}
然后在我的PHP中我会说

data: {action: "get_categories", etc..}
if(isset($_POST['action']) && ($_POST['action'] == 'get_categories')) { 
//do stuff
}
我正在尝试对代码进行重构,我想将其中一个代码块的输出传递到另一个代码块,但它不是PHP函数,所以我不确定如何进行重构?有没有一种方法可以直接从AJAX调用调用PHP函数,而不是使用action

另外,在使用这种风格的PHP代码块时,我必须在每个代码块中调用下面的代码,我不知道为什么?我想如果我把它放在我的php文件的顶部,并使用require_一次,这可能会起作用,但除非我在每个代码块中都包含它们,否则我尝试的任何东西都不会起作用

require("config.php");
require("database.php");

不,不能从客户端Javascript调用PHP函数。首先,请确保您理解以下内容:。完成此操作后,您将看到服务器端执行任何操作的唯一方法是通过AJAX HTTP调用,这是对网站的常规请求,就像任何其他PHP脚本所使用的一样。HTTP没有“函数”的概念,也没有任何特定的编程语言。您可以通过HTTP请求URL,不多不少。当请求这些URL时,您可以执行PHP代码来处理这些请求。每个新请求都完全独立于所有其他请求,因此每个请求都是独立的脚本执行,它需要自己的include和require


打开浏览器开发工具(Chrome/Safari Web inspector、Firebug或类似工具)中的network inspector选项卡,观察AJAX请求往返于服务器。这应该比任何解释都能更好地说明这个概念。

我在上面的代码中没有看到任何PHP函数?在我看来一切都很好,但我不太确定你们在问什么?你们可以通过AJAX调用“直接”执行函数。像这样:
$\u POST['action']()@psal哦,天哪,真的
POST execute.php HTTP/1.1\n\n操作=deleteAllData
@deceze,什么?你怎么知道他有这种功能(
deleteAllData
)?@psal我没有,但如果我试图入侵你的网站,我会试试。关键是你允许任何人执行任意代码。我相信你可以通过这种方式找到一些至少会造成轻微破坏的功能。好吧,这是有道理的,这就是我从谷歌搜索中看到的,但我只是觉得我肯定错过了什么。只要这是它应该是的方式,那么我很好。还有一个问题…我如何从这些PHP代码块中输出一个变量并在另一个代码块中使用它?我不理解最后一个问题。你知道吗,我刚刚意识到我的后续问题是胡说八道。我试着把这些代码块看作函数,但它们不是,我只需要克服它。谢谢你的帮助!