如何从ajax获得php对象


How to get php object from ajax

我有一个任务:创建一个树类,所有的方法,如(添加节点,删除节点,复制,移动)必须由ajax调用。

在index.php中我写了(树必须在加载文件时显示):

$tree = new Tree($data);

树创建成功。

所以,问题是:我如何通过ajax (add_node.php, delete_node.php,…)与对象一起工作,这是在索引文件中创建的?

add_node.php文件中最简单的方法再写一遍:

$tree = new Tree($data);

,但我认为再生产一个不是个好主意完全相同的对象

另一个想法是在js函数中发送一个节点php变量,但我不知道如何做到这一点。我认为那是不可能的。

有人知道吗?感谢您的帮助

简单的答案,你不能。但是您可以提供一种机制,使用密钥在服务器端传递数据。

Tree对象是服务器端代码。所以我想使用sessions来存储和检索数据是明智的。使用客户端AJAX在会话中拥有会话变量的标识符,并传递会话变量,而不是使用实际对象。

<?php
  session_start();
  $_SESSION["myData"] = new Tree($data);

现在在客户端,传递myData而不是$_SESSION["myData"]。服务器端代码和客户端代码必须有更好的分离。你不能通过客户端HTTP请求传递对象。

URL可能是:add_node.php?id=myData,您将以这种方式访问它:

<?php
  session_start();
  $tree = $_SESSION[$_GET["id"]];

你正在访问原始对象,而不是创建一个全新的对象。


另一种方法是使用序列化。但是在您的情况下,我不确定序列化是否可以反序列化为与以前相同的对象。