AJAX url调用上的多个PHP脚本

时间:2012-08-31 23:21:49

标签: php jquery ajax

创建AJAX调用没问题,但每个网址目前都必须是唯一的。我希望在同一个文件中包含多个PHP函数,并使用特定的AJAX调用专门访问其中一个PHP函数。

使用jQuery,目前我正在使用整数规范传递.data参数,然后在PHP文件中使用$ _GET方法并运行整数指定的正确函数。

我怎样才能更好地做到这一点?我想在PHP文件中调用许多特定的函数;我不希望每个函数都有单独的文件

2 个答案:

答案 0 :(得分:1)

您可以为每个功能分配ID,根据AJAX发送GET ID,并使用switch

调用该功能

例如:发送GET = 1GET = 2

switch ((int)$_GET['id']) {
    case 1:
        processData();
        break;
    case 2:
        sendEmail();
        break;
    case 3:
        restoreBackup();
        break;
    // ........ and so on
}

答案 1 :(得分:1)

我可以告诉你使用快速而肮脏的解决方案,即在通话中传递function参数,然后:

switch($_GET['function'])
{

case 'show':    
    show();
    break;

case 'delete':
    delete();
    break;

case 'awesome':

    awesome();
    break;

}

但这完全是不可维护的,因为你会淹没在一堆乱七八糟的内容中,甚至更糟糕的是你将无法在任何地方重复使用的大量代码。

我建议您进入路由,即在指向的URL和正在调用的函数之间建立关系,如果需要,可以使用参数[如下面的第二个示例]:

/users              --> printAllUsers
/users/123          --> printUser($id)
/products/beers     --> printProducts($category)
/search             --> search()
...

通过这种方式,您可以将路由本身与响应生成分离:您可以找到更好的整体解释here,然后就可以找到一个非常好的瘦库{{3}您可以在项目中使用而不依赖于整个框架。

啊,在使用OOP,MVC,RESTful服务这些当然值得学习的东西进入流行语海洋之前 - 坚持这个第一个概念:当我开始学习所有这些东西时,它是我真正错过的那个,这对我来说是 eureka