2016-09-20 87 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具有全局范围,所以不需要将它作为参数传递给后端文件中的函数。