将php对象传递给javascript

时间:2014-10-15 09:02:06

标签: javascript php

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

<?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中调用它的方法吗?

1 个答案:

答案 0 :(得分:0)

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

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


另一种方法是:

  • 使用JavaScript重新实现该课程
  • 从PHP对象中提取数据
  • 将该数据发送到客户端
  • 从数据构建JavaScript对象
  • 调用该JavaScript对象上的方法

很明显,只有当方法执行可以通过客户端JS实现的事情(或者您将不得不涉及更多Ajax)时,这才有效。