2012-12-28 45 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,所以也許你也可以看看。 –