2012-12-28 132 views
2

我知道我能做到这一点:用AJAX调用PHP函数?

//Jquery 
$.ajax({type: 'POST', data : {'action' : 'foo'}}); 

//PHP 
if(isset($_POST['action']) && $_POST['action'] == 'foo') 
{ 
    function foo() 
    { 
     //yeah 
    } 
} 

不过。在一个项目中,我正与一个朋友,他设立了控制器能够在使用自定义操作称为特定功能。比如说,我的观点是使用thing.php的控制器。从我的Javascript我只能AJAX来像这样的网址:

'url' : 'thing' 

因此,在这种情况下,FOO()将被调用,而不需要任何IFS或开关(据我所知)

对我来说,这是伟大而理想的,但我不确定它是如何建立的。他不在节日前问,所以我问你们。

你知道这是如何实现的吗?我们正在使用一个非常典型的MVC架构。对不起,我是一个PHP新手。谢谢!

+0

你为什么不问你的朋友是什么,以及他如何实现的? – zerkms

+0

@EaterOfCorpses:对不起? – zerkms

+0

@zerkms:“* [我的朋友]不在节假日,所以我问你们。” – DCoder

回答

7

它看起来像你的朋友,如果你调用像/thing一个URL它实际上将调用服务器上的文件/thing.php并执行它使用的.htaccess重写网址以添加.php,也许

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

现在。或者在你的情况,如果您的网址只是thing没有启动/它会调用thing.php在同一个文件夹中当前的页面是。

也许他正在改写一切到控制器,然后添加变量命令。喜欢的东西

RewriteRule ^(.*)$ controller.php?action=$1 

无论如何,检查您的线索/他的.htaccess文件

+1

顺便说一下.htaccess文件默认情况下通常是隐藏文件,所以你不一定会看到它们,除非你有隐藏文件显示。 – Brett

+0

btw2>我的托管公司使用iirf.ini文件而不是.htaccess,所以也许你也可以看看。 –