我可以使用函数而不是在调用ajax POST / GET时创建新的php页面吗?

时间:2013-07-18 16:55:57

标签: javascript jquery

使用一个不同的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。不能在发帖子/获取ajax请求时使用函数来调用而不是重定向到php页面吗?

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

如果它似乎是愚蠢的问题那么非常抱歉:3

3 个答案:

答案 0 :(得分:2)

没有。 HTTP请求只能发送到URL。

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

答案 1 :(得分: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。

答案 2 :(得分:0)

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