2013-12-10 244 views
0

我使用了很多AJAX来电,我会说,从AJAX调用PHP函数?

data: {action: "get_categories", etc..} 

,然后在我的PHP我会说,

if(isset($_POST['action']) && ($_POST['action'] == 'get_categories')) { 
//do stuff 
} 

我试图重构代码我希望将这些代码块中的一个代码块的输出传递给另一个代码块,但它不是PHP函数,所以我不确定该怎么做?有没有办法直接从AJAX调用来调用PHP函数,而不是使用操作?

另外,在使用这种风格的PHP代码块时,我必须在每个代码块中调用以下代码,并且我不确定为什么?我想如果我把它放在我的PHP文件的顶部,并使用require_once可能工作,但没有任何我尝试工作,除非我在每个代码块中包括这些。

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

我在上面的代码中看不到任何PHP函数?一切看起来都很好,我不确定你在问什么? – superphonic

+0

你可以通过AJAX调用“直接”执行函数。像这样:'$ _POST ['action']();' – onionpsy

+0

@psal哦,上帝,真的吗?! 'POST execute.php HTTP/1.1 \ n \ naction = deleteAllData' – deceze

回答

1

不,您不能从客户端Javascript调用PHP函数。首先,确保你明白这一点:What is the difference between client-side and server-side programming?。完成这些之后,您将看到通过AJAX HTTP调用来执行服务器端任何事情的唯一方式,这是对任何其他PHP脚本将使用的网站的常规请求。对于这个问题,HTTP没有“功能”或任何特定编程语言的概念。您可以使用HTTP请求请求网址,仅此而已。当请求这些URL时,您可以执行PHP代码来处理这些请求。每个新请求都完全独立于所有其他请求,因此每个请求都是一个独立的脚本执行,它需要自己的包含和要求。

在浏览器的开发工具(Chrome/Safari Web Inspector,Firebug或类似软件)中打开网络检查器选项卡,然后观察AJAX请求来回传输到服务器。这应该说明这个概念比任何解释都要好得多。

+0

好的,这是有道理的,这就是我从谷歌搜索看到的,但我只是觉得我必须错过一些东西。只要这是它应该的方式,那么我就很好。还有一个问题......我将如何从这些PHP代码块中的一个输出变量并在另一个代码块中使用它? – hyphen

+0

我不明白最后一个问题。 – deceze

+1

你知道吗,我只是意识到我的后续问题是无稽之谈。我试图将这些代码块视为函数,而他们不是,我只需要克服它。谢谢你的帮助! – hyphen