为PHP函数创建jQuery AJAX请求

Gar*_*nay 4 javascript php ajax jquery

到目前为止,在创建AJAX请求时,我一直在发布到单独的PHP文件中.是否可以创建一个调用PHP函数而不是发布到单独页面的jQuery AJAX请求?

如果你能给我发送任何例子或文件会很棒.

Nul*_*ion 54

我相信对这项技术如何运作有一个根本的误解.

AJAX(Javascript),Flash或任何客户端技术都无法直接调用PHP函数(或在服务器上运行的其他语言).这也适用于反过来(例如:PHP无法调用JS函数).

客户端和服务器代码驻留在不同的计算机上,它们通过HTTP协议(或您拥有的)进行通信.HTTP的工作方式大致如下:

客户端 - 服务器模型

客户端(例如:浏览器)发送REQUEST - > Server进程请求并发送RESPONSE - > Client获取并显示和/或处理响应

您必须将这些请求和响应视为消息.消息不能直接调用服务器端语言上的函数1,但可以提供足够的信息来执行此操作并从服务器获取有意义的消息.

所以你可以有一个处理和分派这些请求的处理程序,如下所示:

// ajax_handler.php
switch ($_POST['action']) {
    case 'post_comment':
        post_comment($_POST['content']);
        break;
    case '....':
        some_function();
        break;
    default:
        output_error('invalid request');
        break;
}
Run Code Online (Sandbox Code Playgroud)

然后让您的客户端使用正确的参数向此集中处理程序发送请求.然后处理程序决定在服务器端调用哪些函数,最后它将响应发送回客户端.


1从技术上讲,存在远程过程调用(RPC),但这些调用可能会变得混乱.

  • "我相信这项技术在这方面的运作方式存在根本性的误解." 我全心全意地同意."客户端和服务器代码驻留在不同的机器上"......我认为这是困扰很多人的部分.HTML,Javascript和PHP都是_reside_并排在服务器上,但Javascript _executes_在客户端.我不认为人们明白获取Javascript并调用PHP脚本_from_ Javascript是对服务器的两个单独请求.+1为插图.:) (9认同)

jon*_*ohn 7

AJAX请求调用URL(发出HTTP请求),而不是文件,在大多数情况下,URL由服务器转换为指向文件(或者您的情况下是PHP脚本),但是从HTTP请求发生的所有事情都发生了收到的响应取决于您(在您的服务器上).

有许多PHP框架将URL映射到特定的php函数,AJAX只是一种访问URL并接收响应的异步方式.

所述URL CAN触发服务器调用特定功能并发回响应.但是由您自己构建URL和服务器端代码.