2016-09-20 81 views
1

使用ajax時創建大量單獨的.php文件是否是標準做法?還是有辦法相對容易地調用某些函數?使用ajax而不是php文件調用php函數

例如,我checkusername代碼,我要創建一個單獨的PHP文件,這是否

xhttp.open("GET", "CheckUsername.php?q="+name, true); 

現在如果我是去和創建一批Ajax調用,我會需要大量的獨立。 PHP文件。有沒有簡單的方法來組合這些?無論是功能還是文件夾,我都可以將它們全部放入?

+0

看看任何框架:yii,流明,laravel,silex等。他們將請求分成幾個類。 – Evgeniy

+1

有很多可能的答案。當然,您可以按文件夾對文件進行分組。你可以創建一個服務,接受不同的端點'MyService.php/CheckUsername'等。我相信還有很多其他的解決方案,但是,你的問題很模糊。 – mhatch

+0

請參閱我的[**在其他問題**上的答案](http://stackoverflow.com/a/28291235/2191572)並考慮可能的安全風險。 – MonkeyZeus

回答

0

如果使用MVC框架,您通常可以將所有ajax請求路由到一個Controller文件,並針對每個不同的Ajax調用調用不同的方法。

如果您不想使用MVC,您可以通過使用變量變量傳遞一個查詢參數(通過您的ajax請求)來區分函數,從而在一個文件中創建一個僞路由器。例如,如果你的後臺文件是這樣的:

<?php 

    $function_id = $_GET['function_id'];// this acts as a low level but functional router 

    function func1() {} 

    function func2() {} 

    echo $function_id(); 

?> 

您可以添加查詢參數,像這樣:

var func = 'func1'; 

xhttp.open("GET", "CheckUsername.php?q="+name+"&function_id="+func, true); 

返回值將是從功能func1()在這種情況下。 $_GET具有全局範圍,所以不需要將它作爲參數傳遞給後端文件中的函數。