使用jQuery AJAX调用PHP函数

n00*_*bi3 3 jquery

我已经阅读了有关我的问题的所有主题,但无法解决我的问题.我想用jQuery AJAX获取php函数结果.

function.php

function generateCode() {
//code here
}

function generateResult() {
//code here
}
Run Code Online (Sandbox Code Playgroud)

如何使用jQuery AJAX捕获函数结果?我不想改变function.php结构,因为它与另一个页面有关.

请参阅使用jquery $ .ajax来调用PHP函数,没有答案可以解决我的问题.谢谢

dec*_*eze 35

你无法从Javascript调用PHP文件中的函数,完全停止.客户端(此处:Javascript)只能通过HTTP协议与服务器(此处为:PHP)通信.HTTP协议没有文件,函数或编程语言的概念.这意味着您只能通过URL或HTTP标头传输信息.因此,您永远不能从Javascript调用PHP函数,您所能做的就是请求返回数据的URL.

因此,通过请求URL,比如说http://example.com/myscript.php,脚本myscript.php被调用.此脚本现在必须弄清楚它应该做什么并输出一些响应.这个脚本实际上可以调用PHP函数,例如:

// myscript.php

include 'functions.php'
echo generateCode();
Run Code Online (Sandbox Code Playgroud)

因此,无论何时请求URL http://exmaple.com/myscript.php,您都将获得该函数的输出generateCode().您可能会注意到,这与使用Web浏览器访问URL时的工作方式相同.那是因为这是使用HTTP协议通过Web服务器运行代码的唯一机制,因此Javascript可以"调用PHP函数"的唯一方法.Javascript没有直接调用PHP函数的秘密后门.

希望这可以帮助.

  • @ n00b要使用它,您需要一个提供RPC服务的服务器,即某些服务,有时在HTTP之上运行,接受请求并返回数据.相同的概念,略有不同的细节.你不能简单地通过网络进入任何机器并调用任意函数.感谢上帝,因为那将是一场安全噩梦. (2认同)
  • 这真的应该是答案! (2认同)

Nar*_*esh 8

我在JavaScript中做的是我传递我要调用的PHP函数名.喜欢..

function MyFunction() {
jQuery.ajax({
    type: "GET",
    url: "function.php",
    data: "call=generateCode",
    success: function(response){
        //do something
    });
}
Run Code Online (Sandbox Code Playgroud)

这里的数据字段"call"变量具有从"function.php"文件调用的函数名.

在"function.php"中,我在下面的代码中调用该函数

if($_SERVER['REQUEST_METHOD']=="GET") {
$function = $_GET['call'];
if(function_exists($function)) {        
    call_user_func($function);
} else {
    echo 'Function Not Exists!!';
}
}
Run Code Online (Sandbox Code Playgroud)

  • 在这种天真的形式中,这是一个可怕的想法.`call = getAllDatabaseRecords`,`call = logInUser` ... (2认同)