一个php文件用于所有jquery post请求?

一个php文件用于所有jquery post请求?,php,jquery,ajax,Php,Jquery,Ajax,我有很多jquery ajax方法,每个方法都有一个小php文件。 是否可以创建一个php文件,然后在jquery端引用php文件中的特定函数? 像这样: $.ajax({ type: "POST", url: "functions.php", function01(), .... 下一个功能: $.ajax({ type: "POST", url: "functions.php", function02(), .... 如果可能的话,这可能

我有很多jquery ajax方法,每个方法都有一个小php文件。
是否可以创建一个php文件,然后在jquery端引用php文件中的特定函数?
像这样:

$.ajax({
    type: "POST",
    url: "functions.php", function01(),
    ....
下一个功能:

$.ajax({
    type: "POST",
    url: "functions.php", function02(),
    .... 

如果可能的话,这可能是一种错误的做法吗

你可以,但不是那样

我建议在请求中发送一个参数,告诉它要运行什么函数

$.ajax({
    type: "POST",
    url: "functions.php",
    data: {
        method: 'function01'
        # and then whatever other data you send
    }
});
然后在PHP中,只需使用
方法
param调用正确的函数

<?php

$funcName = $_POST['method'];
call_user_func($funcName);

function function01(){
}

function function02(){
}

您可以将$\u POST变量与其他AJAX数据一起传递,并使用它来确定要像这样运行的函数:

JS

$.ajax({
    type: 'POST',
    url: 'function.php',
    data: {
        action: 'function01',
        ... // Other Data
    }
    ...
});
PHP

if ($_POST['action'] == 'function01'){
    ...
}
我希望这有帮助

您正在寻找将请求路由到正确的收件人

这是许多MVC框架中的一种常见做法,与代码的可维护性相比,它并没有显著的性能影响(如果操作正确)

一个非常简单的例子:

<?php
// request.php
$allowedRequests = [
  // these files will correctly handle the specific requests when included
  'db'   => 'db.php',
  'file' => 'file.php'
];

$request = $_GET['request'];
if (isset($allowedRequests[$request)) {
  include($allowedRequests[$request]);
}
根据请求参数,将选择并包含正确的文件


注意:正如我已经说过的,这是一个非常简单的示例。例如,CakePHP支持在不同的文件中存储分组功能(=控制器)。无论如何,要点是将整个请求参数重定向到应用程序的正确部分。

您的权利,事实上,您应该尝试不以其他方式执行此操作。考虑一个调用正确函数的dispatcher文件。您可以帮自己一个忙,因为您现在只能定义1个错误处理程序、1个输出处理程序等


至于您的问题:在您的请求中添加“数据”,以便您可以确定请求的类型。根据请求的类型,您可以调用正确的方法(例如,使用一个开关来计算$\u POST值)

这可以通过使用路由功能轻松完成,可以使用许多流行的PHP框架。非常感谢大家。我看看。解决了。@Diodeus:也许…>。>@迪奥多斯:我只是打字很快:-D@Rottingham是的,可测试性也是一个很好的观点!将请求处理抽象为一种在不实际运行“真实”URL的情况下也可以运行函数的方式,这是一个非常重要的概念。
$.ajax({
    type: "POST",
    url: "functions.php?request=db"