-2

为我制作的每个模块使用不同的 php 页面进行删除/插入/更新将使我的 php 页面对于我调用的每个 ajax 来说太多了。喜欢

$.post("../lib/ajax/edit-user-save.php",{username:username,email:email,id:id},function(data){}

我使用 edit-user-save.php 来编辑模块。现在删除我像delete-user.php一样。我不能在发出 post/get ajax 请求而不是重定向到 php 页面时使用函数调用吗?

非常感谢您的建议。感谢:D

如果这个问题看起来很愚蠢,那么我非常抱歉:3

4

3 回答 3

2

不能。HTTP 请求只能向 URL 发出。

如果要运行一个函数,则该 URL 必须由服务器端程序处理,并且该程序必须调用您要运行的函数。您可以根据(例如)查询字符串参数有条件地执行此操作。

于 2013-07-18T17:04:57.810 回答
2

只需传递一个参数来说明您尝试使用的操作,然后在服务器端检查该参数并调用适当的函数。像这样的东西:

客户端:

$.post("../lib/ajax/user.php", {
    username: username,
    email: email,
    id: id,
    action: 'edit'
}, function(data){});

服务器端:

switch($_POST['action']) {
    case 'edit':
        die(edit());
    case 'delete':
        die(delete());
}

或者您可以在服务器端看中并执行以下操作:

if (function_exists($_REQUEST['action'])) {
    die($_REQUEST['action']());
}

这将检查该函数是否存在于服务器端页面上,如果存在,它将调用它。警告:这将允许用户调用该脚本中可用的任何 PHP 函数,因此如果有任何他们不应该调用的函数,您必须将他们可以调用的函数列入白名单或将他们可以调用的函数列入黑名单不。

一旦函数调用返回,die()调用将停止脚本执行,从而阻止您的脚本继续并重新生成 HTML。

于 2013-07-18T17:06:31.103 回答
0

您可能有一个变量function来发布您需要执行的功能delete/insert/update。在 php 页面上,您将需要if/else有条件或case语句。当变量函数 == 'update' 时,您有一段代码要更新,依此类推。

于 2013-07-18T18:15:45.753 回答