【发布时间】:2015-05-21 14:28:00
【问题描述】:
我很难弄清楚如何接收一组 id 或完整的节点信息并使用该数据将对应的行插入到数据库中。
为什么会这样?好吧,我有以下层次结构 projeto>uc>ambiente>secao>med。在我的 JS 树中,我正在使用延迟加载,所以假设用户选择了一个“projeto”,他们提交的只是我得到的“projeto”id,所以这很容易,我知道我必须在 db 上插入它的所有子项和他们的孩子。但是假设用户选择了一个特定的“ambiente”或一个特定的“secao”,我得到的只是一个 id 或一个节点数据,但是要插入该信息,我需要先插入它的所有父数据,然后才能将其插入分贝。
示例 1 单个“项目”选定数据。
[{"id":"projeto_1","text":"Pr\u00e9dios P\u00fablicos","icon":"fa fa-folder icon-lg icon-state-info","parent":"#","parents":["#"],"data":{"id_mobile":"1"},"state":{"loaded":"false","opened":"false","selected":"true","disabled":"false"},"li_attr":{"id":"projeto_1"},"a_attr":{"href":"#"},"original":{"id":"projeto_1","text":"Pr\u00e9dios P\u00fablicos","icon":"fa fa-folder icon-lg icon-state-info"}}]
示例 2 选择了单个“ambiente”,可能有或没有“secao”子级。
[{"id":"ambiente_4","text":"protocolo","icon":"fa fa-folder icon-lg icon-state-info","parent":"uc_1","parents":["uc_1","projeto_1","#"],"data":{"id_ambiente_mobile":"4"},"state":{"loaded":"false","opened":"false","selected":"true","disabled":"false"},"li_attr":{"id":"ambiente_4"},"a_attr":{"href":"#"},"original":{"id":"ambiente_4","text":"protocolo","icon":"fa fa-folder icon-lg icon-state-info","type":"ambiente"}}]
示例 3 单个 'secao' 选定数据。
[{"id":"secao_5","text":"1 Lumin\u00e1ria(s) LFT 1X40W","icon":"fa fa-folder icon-lg icon-state-info","parent":"ambiente_5","parents":["ambiente_5","uc_1","projeto_1","#"],"data":{"id_secao_mobile":"5"},"state":{"loaded":"false","opened":"false","selected":"true","disabled":"false"},"li_attr":{"id":"secao_5"},"a_attr":{"href":"#"},"original":{"id":"secao_5","text":"1 Lumin\u00e1ria(s) LFT 1X40W","icon":"fa fa-folder icon-lg icon-state-info","type":"secao"}},{"id":"ambiente_5","text":"Recep\u00e7\u00e3o","icon":"fa fa-folder icon-lg icon-state-info","parent":"uc_1","parents":["uc_1","projeto_1","#"],"children":["secao_5"],"children_d":["secao_5"],"data":{"id_ambiente_mobile":"5"},"state":{"loaded":"true","opened":"true","selected":"true","disabled":"false","loading":"false"},"li_attr":{"id":"ambiente_5"},"a_attr":{"href":"#"},"original":{"id":"ambiente_5","text":"Recep\u00e7\u00e3o","icon":"fa fa-folder icon-lg icon-state-info","type":"ambiente"}}]
上面所有的数据都是传给php文件的数据。所以我只是 jso_encoded 并在这里发布。
所以我需要将选定的节点插入数据库,但考虑到如果父节点未加载到树上,它可能有子节点。当然,当我选择一个孩子并需要迭代所有备份时,他们会在插入孩子之前将其插入父依赖项(最后两个示例)。
希望你们能帮助我。如果需要任何澄清,请询问。
谢谢。
【问题讨论】: