我有这样的结构:
LET sortByCreatedAt = (
FOR d in @@collectionName
SORT createdAt DESC
RETURN d)
LET sortByName = (
FOR d in @@collectionName
SORT name DESC
RETURN d)
RETURN (@sortBy == 'createdAt') ? sortByCreatedAt : sortByName
从AJAX递归调用append_to_my_data方法,它应该通过小块处理数组,并通过将结果附加到$ my_data属性来组合结果。但似乎在每次调用此方法时,$ my_data属性再次为空,并且不包含上一次调用的结果。
为什么会这样?我应该寻找另一种存储这些数据的方法吗?我不想将数据存储在我的JavaScript递归中,因为它可能非常深,数据可能会非常大。
答案 0 :(得分:0)
通过AJAX,我认为你的意思是Javascript
这告诉我一件事,您尝试在客户端应用程序(Javascript代码)和服务器应用程序代码(PHP)的http请求之间保留数据。
请注意,JS /客户端在浏览器中的用户计算机上运行,PHP代码在您自己的服务器计算机上运行。两台完全不同的机器,带有独立的内存/硬盘和CPU
要在不同的http请求之间保留服务器上的数据,可以使用许多方法/方法
两种最常用的方法是使用php sessions和/或MySQL数据库,还有很多方法可以做到,上面两种是最常见的方法。
而且,要访问对象属性,您需要使用$this
即:
$this->my_data[] = $this->get_result();
and not
$my_data[] = $this->get_result();