一个php文件用于所有jquery post请求?
我有很多jquery ajax方法,每个方法都有一个小php文件。一个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(), .... 如果可能的话,这可能
是否可以创建一个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"