繁体   English   中英

将php-objects传递给javascript

[英]Passing php-objects to javascript

我想知道是否有可能创建一个php对象并在我的JavaScript中使用它及其方法。 例如,我有以下php-script:

<?php  
       class Foo
       {
           public function bar()
           {
                //do something here
           }
       }
 ?>

然后,我可以向服务器发送AJAX请求并获取Foo的实例:

  $.ajax({
    type: "POST",
    url: "path/to/Foo/Foo.php",
    data: {
        action: "get-object"
    },
    dataType: 'json',
    success : function(data){
        alert("My Foo object: "+data);
    },
    error : function(XMLHttpRequest, textStatus, errorThrown) {
        alert("Did not work");
    }
});

当然,我将不得不扩展Foo.php以便它返回我类Foo的实例。

我尝试了一下,但没有成功,我的数据变量始终为空。

那么,还有另一种方法来获取php类的实例并在Javascript中对其调用方法吗?

您只能在服务器上运行PHP代码,因此,每次要从JavaScript对其调用方法时,都需要向服务器发出新的HTTP请求。

这将需要在多个请求中保持对象的存在。 您可以通过将其存储在会话变量中来执行此操作(您可能需要先对其进行显式序列化)。


一种替代方法是:

  • 使用JavaScript重新实现该类
  • 从PHP对象中提取数据
  • 将该数据发送给客户端
  • 根据数据构造一个JavaScript对象
  • 调用该JavaScript对象上的方法

显然,这仅在方法执行您可以通过客户端JS实现的事情时才起作用(否则,您将不得不涉及更多的Ajax)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM