长时间读者,第一次海报:)

我有一个应用程序,其中包含我们所有客户/项目的树视图 . 对于每个客户,您可能有多个项目,其中包括多个站点,多个建筑物e.t.c.

所有这些都是一对多的关系,因此我认为非常适合树视图 . 数据存储在mySQL中 . 在页面加载时通过jQuery Ajax请求填充树视图 . 我有一个上下文菜单,我可以右键单击并选择新的站点,该站点触发对PHP文件的Ajax请求,该文件将新站点添加到mySQL数据库 . 然后,在绑定切换可折叠函数之前,它会在第一个Ajax请求成功时刷新树视图 .

每当进行刷新时,由于PHP文件通过嵌套的while循环运行并从头开始获取所有列表数据,分支全部崩溃 . 这导致class =“close”被读取到所有[li]项 .

我希望分支折叠在ajax,SQL和刷新之前保持原样 .

如果不创建所有折叠分支的数组,我无法将其恢复到其上一个已知状态 . 我考虑过将树分成几个部分,例如,如果添加了一个新站点,那么我只通过ajax请求刷新站点列表,但是,因为PHP不喜欢语法,因为我的嵌套while循环需要关闭括号 .

我确信有一种更聪明的方法可以做到这一点,我很遗憾 . 也许我应该将SQL数据构建到PHP数组中,然后单独创建树分支?