使用 jQuery 访问 PHP 方法


access PHP Methods with jQuery

我对jQuery和Ajax完全陌生,但是我已经设法学习如何做Hello World,填充选择标签等等,等等......问题是,我不喜欢使用结构PHP。我学到的方式是我必须用$.getJSON调用一些PHP文件,并且该文件必须"回显"我的结果。我想要的是能够调用一个PHP文件,该文件实际上是一个带有一些方法的类,并且该方法的返回将是JavaScript将接收的,而不仅仅是回显结果。

感谢您的关注。

Ps.:我在使用 Amfphp 的 PHP-OOP 和 Flex+PHP 方面有很多经验。我正在尝试构建一个不同版本的视图,我想重用 Flex 已经使用的类。

jQuery运行在计算机上,PHP运行在服务器上。PHP 和 jQuery 只能通过一系列精心设计的字符串进行通信。在服务器上,您可以自由创建对象、运行方法、操作输出以及其他任何内容。但是,如果您要将该数据反馈回jQuery应用程序(仍在客户端计算机上运行),则需要回显(或输出)PHP脚本的结果。

你可以考虑这样的事情:

$.post('server.php', { 'class':'foo', 'method':'bar' }, function( response ) {
  /* do something with the output of $foo->bar(); */
});

正如您在此处看到的,我可以定义要在服务器上调用的类和方法。从 server.php 开始,我们将查看$_POST['class']$_POST['method']来确定我们将实例化的内容以及我们将运行哪些方法。

AMF与HTTP有些不同,它们是不同的协议。

当使用AJAX(jQuery与否)时,你在URI上调用HTTP方法,而不是OOP方法。因此,所有内容都以至少两个映射结束:

  • 映射到方法和 URI 的应用程序逻辑。
  • 映射到方法和 URI 的 Javascript 代码。

下面是使用 Respect''Rest 的示例:

$router->get('/users/*', function($userName) {
    return MyDatabaseLayer::fetchUser($userName); //Illustrative
})->accept(
    'application/json' => function($data) {
        header('Content-type: application/json');
        return json_encode($data);
    }
);

现在是jQuery部分:

$.getJSON('/users/alganet', function(user) {
    alert(user.name);
});

您应该对不同的操作使用适当的 HTTP 方法。保存用户如下所示:

$router->post('/users/*', function($userName) {
    return MyDatabaseLayer::saveUser($_POST['user']); //Illustrative
});

j查询:

$.post('/users', $("$userform").serialize());

有四种主要的HTTP方法:GET,POST,PUT和DELETE。GET 和 POST 是最常见的。

有一个很好的琐事:HTTP,REST和AMF都是由同一个人编写的:Roy Fielding。