PHP Array with JsTree make node selected from a selected array
PHP Array with JsTree make node selected from a selected array
我正在尝试从我选择一些节点存储在数据库中的地方实施 JsTree。选择节点并将其提交到数据库后,我想在从数据库中获取节点后保留这些节点。或者你可以说,当我来编辑表单时,它应该向我显示在 JsTree 中选择的子类别的选定类别。这是我正在尝试的方式。
我的 JSON 树数据如下所示,
[{
"id": 1,
"name": "PHONE DEALS",
"slug": "phone-deals",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": null,
"lft": 1,
"rgt": 130,
"depth": 0,
"user_id": 5,
"active": 1,
"old_id": "1",
"publish_at": "2017-12-29 12:04:30",
"tax": 0,
"created_at": "2017-12-29 06:34:30",
"updated_at": "2018-01-02 12:34:46",
"children": [{
"id": 2,
"name": "Apple",
"slug": "apple",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 1,
"lft": 2,
"rgt": 27,
"depth": 1,
"user_id": 5,
"active": 1,
"old_id": "2",
"publish_at": "2017-12-29 12:04:48",
"tax": 0,
"created_at": "2017-12-29 06:34:48",
"updated_at": "2018-01-02 12:37:53",
"children": [{
"id": 3,
"name": "iphone 5",
"slug": "iphone-5",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 3,
"rgt": 4,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "131",
"publish_at": "2017-12-29 12:05:32",
"tax": 0,
"created_at": "2017-12-29 06:35:32",
"updated_at": "2018-01-02 12:38:22",
"children": []
}, {
"id": 5,
"name": "iphone 4s",
"slug": "iphone-4s",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 7,
"rgt": 8,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "132",
"publish_at": "2017-12-29 12:15:08",
"tax": 0,
"created_at": "2017-12-29 06:45:08",
"updated_at": "2018-01-02 12:38:41",
"children": []
}, {
"id": 6,
"name": "iphone 5se",
"slug": "iphone-5se",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 9,
"rgt": 10,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "133",
"publish_at": "2017-12-29 12:15:30",
"tax": 0,
"created_at": "2017-12-29 06:45:30",
"updated_at": "2018-01-02 12:39:19",
"children": []
}, {
"id": 7,
"name": "iphone 5s",
"slug": "iphone-5s",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 11,
"rgt": 12,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "134",
"publish_at": "2017-12-29 12:17:09",
"tax": 0,
"created_at": "2017-12-29 06:47:09",
"updated_at": "2018-01-02 12:40:12",
"children": []
}, {
"id": 8,
"name": "iphone 5c",
"slug": "iphone-5c",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 13,
"rgt": 14,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "135",
"publish_at": "2017-12-29 12:17:29",
"tax": 0,
"created_at": "2017-12-29 06:47:29",
"updated_at": "2018-01-02 12:40:36",
"children": []
}, {
"id": 9,
"name": "iphone 6",
"slug": "iphone-6",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 15,
"rgt": 16,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "136",
"publish_at": "2017-12-29 12:17:48",
"tax": 0,
"created_at": "2017-12-29 06:47:48",
"updated_at": "2018-01-02 12:41:02",
"children": []
}, {
"id": 10,
"name": "iphone 6s",
"slug": "iphone-6s",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 17,
"rgt": 18,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "137",
"publish_at": "2017-12-29 12:18:07",
"tax": 0,
"created_at": "2017-12-29 06:48:07",
"updated_at": "2018-01-02 12:41:21",
"children": []
}, {
"id": 11,
"name": "iphone 6s plus",
"slug": "iphone-6s-plus",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 19,
"rgt": 20,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "138",
"publish_at": "2017-12-29 12:18:25",
"tax": 0,
"created_at": "2017-12-29 06:48:25",
"updated_at": "2018-01-02 12:41:39",
"children": []
}, {
"id": 12,
"name": "iphone 6 plus",
"slug": "iphone-6-plus",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 21,
"rgt": 22,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "139",
"publish_at": "2017-12-29 12:18:42",
"tax": 0,
"created_at": "2017-12-29 06:48:42",
"updated_at": "2018-01-02 12:42:17",
"children": []
}, {
"id": 13,
"name": "iphone 7",
"slug": "iphone-7",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 23,
"rgt": 24,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "140",
"publish_at": "2017-12-29 12:19:04",
"tax": 0,
"created_at": "2017-12-29 06:49:04",
"updated_at": "2018-01-02 12:42:44",
"children": []
}, {
"id": 14,
"name": "iphone 7 plus",
"slug": "iphone-7-plus",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 25,
"rgt": 26,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "141",
"publish_at": "2017-12-29 12:19:27",
"tax": 0,
"created_at": "2017-12-29 06:49:27",
"updated_at": "2018-01-02 12:42:58",
"children": []
}]
}, {
"id": 16,
"name": "Samsung",
"slug": "samsung",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 1,
"lft": 30,
"rgt": 69,
"depth": 1,
"user_id": 5,
"active": 1,
"old_id": "4",
"publish_at": "2017-12-29 12:23:23",
"tax": 0,
"created_at": "2017-12-29 06:53:23",
"updated_at": "2018-01-02 12:43:15",
"children": [{
"id": 17,
"name": "GALAXY j3",
"slug": "galaxy-j3",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 31,
"rgt": 32,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "154",
"publish_at": "2017-12-29 12:23:44",
"tax": 0,
"created_at": "2017-12-29 06:53:44",
"updated_at": "2018-01-02 12:43:30",
"children": []
}, {
"id": 18,
"name": "GALAXY j5",
"slug": "galaxy-j5",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 33,
"rgt": 34,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "155",
"publish_at": "2017-12-29 12:24:05",
"tax": 0,
"created_at": "2017-12-29 06:54:05",
"updated_at": "2018-01-02 12:43:59",
"children": []
}, {
"id": 19,
"name": "GALAXY j7",
"slug": "galaxy-j7",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 35,
"rgt": 36,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "156",
"publish_at": "2017-12-29 12:24:24",
"tax": 0,
"created_at": "2017-12-29 06:54:24",
"updated_at": "2018-01-03 06:21:33",
"children": []
}, {
"id": 20,
"name": "GALAXY note 2",
"slug": "galaxy-note-2",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 37,
"rgt": 38,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "157",
"publish_at": "2017-12-29 12:24:42",
"tax": 0,
"created_at": "2017-12-29 06:54:42",
"updated_at": "2018-01-02 12:45:01",
"children": []
}, {
"id": 25,
"name": "GALAXY S4",
"slug": "galaxy-s4",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 47,
"rgt": 48,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "166",
"publish_at": "2017-12-29 12:26:34",
"tax": 0,
"created_at": "2017-12-29 06:56:34",
"updated_at": "2018-01-02 12:47:06",
"children": []
}, {
"id": 26,
"name": "GALAXY S5",
"slug": "galaxy-s5",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 49,
"rgt": 50,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "167",
"publish_at": "2017-12-29 12:26:51",
"tax": 0,
"created_at": "2017-12-29 06:56:51",
"updated_at": "2018-01-02 12:47:25",
"children": []
}, {
"id": 27,
"name": "GALAXY S6",
"slug": "galaxy-s6",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 51,
"rgt": 52,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "168",
"publish_at": "2017-12-29 12:27:11",
"tax": 0,
"created_at": "2017-12-29 06:57:11",
"updated_at": "2018-01-02 12:48:02",
"children": []
}, {
"id": 28,
"name": "GALAXY S6 EDGE",
"slug": "galaxy-s6-edge",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 53,
"rgt": 54,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "169",
"publish_at": "2017-12-29 12:27:30",
"tax": 0,
"created_at": "2017-12-29 06:57:30",
"updated_at": "2018-01-02 12:48:28",
"children": []
}, {
"id": 29,
"name": "GALAXY S7 ",
"slug": "galaxy-s7",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 55,
"rgt": 56,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "171",
"publish_at": "2017-12-29 12:27:52",
"tax": 0,
"created_at": "2017-12-29 06:57:52",
"updated_at": "2018-01-02 12:50:04",
"children": []
}, {
"id": 30,
"name": "GALAXY S7 EDGE",
"slug": "galaxy-s7-edge",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 57,
"rgt": 58,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "172",
"publish_at": "2017-12-29 12:28:14",
"tax": 0,
"created_at": "2017-12-29 06:58:14",
"updated_at": "2018-01-02 12:50:59",
"children": []
}, {
"id": 31,
"name": "mega 6.3",
"slug": "mega-63",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 59,
"rgt": 62,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "173",
"publish_at": "2017-12-29 12:28:40",
"tax": 0,
"created_at": "2017-12-29 06:58:40",
"updated_at": "2018-01-02 12:51:39",
"children": [{
"id": 32,
"name": "Blu life XL",
"slug": "blu-life-xl",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 31,
"lft": 60,
"rgt": 61,
"depth": 3,
"user_id": 5,
"active": 1,
"old_id": "366",
"publish_at": "2017-12-29 12:29:20",
"tax": 0,
"created_at": "2017-12-29 06:59:20",
"updated_at": "2018-01-02 12:52:33",
"children": []
}]
}, {
"id": 33,
"name": "Samsung S8 Plus",
"slug": "samsung-s8-plus",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 63,
"rgt": 64,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "312",
"publish_at": "2017-12-29 12:29:50",
"tax": 0,
"created_at": "2017-12-29 06:59:50",
"updated_at": "2018-01-02 12:53:10",
"children": []
}, {
"id": 34,
"name": "Samsung S8",
"slug": "samsung-s8",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 65,
"rgt": 66,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "313",
"publish_at": "2017-12-29 12:30:09",
"tax": 0,
"created_at": "2017-12-29 07:00:09",
"updated_at": "2018-01-02 12:53:36",
"children": []
}, {
"id": 35,
"name": "GALAXY S6 EDGE PLUS",
"slug": "galaxy-s6-edge-plus",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 67,
"rgt": 68,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "335",
"publish_at": "2017-12-29 12:30:26",
"tax": 0,
"created_at": "2017-12-29 07:00:26",
"updated_at": "2018-01-02 12:53:53",
"children": []
}]
}, {
"id": 36,
"name": "lg",
"slug": "lg",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 1,
"lft": 70,
"rgt": 89,
"depth": 1,
"user_id": 5,
"active": 1,
"old_id": "33",
"publish_at": "2017-12-29 12:31:18",
"tax": 0,
"created_at": "2017-12-29 07:01:18",
"updated_at": "2018-01-02 12:54:09",
"children": [{
"id": 37,
"name": "lg g2",
"slug": "lg-g2",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 36,
"lft": 71,
"rgt": 72,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "142",
"publish_at": "2017-12-29 12:31:39",
"tax": 0,
"created_at": "2017-12-29 07:01:39",
"updated_at": "2018-01-02 12:54:51",
"children": []
}, {
"id": 38,
"name": "lg g3",
"slug": "lg-g3",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 36,
"lft": 73,
"rgt": 74,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "143",
"publish_at": "2017-12-29 12:32:00",
"tax": 0,
"created_at": "2017-12-29 07:02:00",
"updated_at": "2018-01-02 12:55:14",
"children": []
}, {
"id": 39,
"name": "lg g4",
"slug": "lg-g4",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 36,
"lft": 75,
"rgt": 76,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "144",
"publish_at": "2017-12-29 12:32:19",
"tax": 0,
"created_at": "2017-12-29 07:02:19",
"updated_at": "2018-01-02 12:55:29",
"children": []
}]
}, {
"id": 46,
"name": "htc",
"slug": "htc",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 1,
"lft": 90,
"rgt": 97,
"depth": 1,
"user_id": 5,
"active": 1,
"old_id": "34",
"publish_at": "2017-12-29 12:34:56",
"tax": 0,
"created_at": "2017-12-29 07:04:56",
"updated_at": "2018-01-02 12:57:15",
"children": [{
"id": 47,
"name": "desire 530",
"slug": "desire-530",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 46,
"lft": 91,
"rgt": 92,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "128",
"publish_at": "2017-12-29 12:35:15",
"tax": 0,
"created_at": "2017-12-29 07:05:15",
"updated_at": "2018-01-02 12:57:58",
"children": []
}, {
"id": 48,
"name": "Desire 626s",
"slug": "desire-626s",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 46,
"lft": 93,
"rgt": 94,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "129",
"publish_at": "2017-12-29 12:35:34",
"tax": 0,
"created_at": "2017-12-29 07:05:34",
"updated_at": "2018-01-02 12:58:10",
"children": []
}, {
"id": 49,
"name": "DESIRE 510",
"slug": "desire-510",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 46,
"lft": 95,
"rgt": 96,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "334",
"publish_at": "2017-12-29 12:35:52",
"tax": 0,
"created_at": "2017-12-29 07:05:52",
"updated_at": "2018-01-02 12:58:29",
"children": []
}]
}, {
"id": 50,
"name": "sky",
"slug": "sky",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 1,
"lft": 98,
"rgt": 103,
"depth": 1,
"user_id": 5,
"active": 1,
"old_id": "35",
"publish_at": "2017-12-29 12:36:20",
"tax": 0,
"created_at": "2017-12-29 07:06:20",
"updated_at": "2018-01-02 12:58:50",
"children": [{
"id": 51,
"name": "sky 4.o d",
"slug": "sky-4o-d",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 50,
"lft": 99,
"rgt": 100,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "174",
"publish_at": "2017-12-29 12:36:40",
"tax": 0,
"created_at": "2017-12-29 07:06:40",
"updated_at": "2018-01-02 12:59:13",
"children": []
}, {
"id": 52,
"name": "sky 5.o w",
"slug": "sky-5o-w",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 50,
"lft": 101,
"rgt": 102,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "175",
"publish_at": "2017-12-29 12:37:03",
"tax": 0,
"created_at": "2017-12-29 07:07:03",
"updated_at": "2018-01-02 12:59:32",
"children": []
}]
}, {
"id": 53,
"name": "zte",
"slug": "zte",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 1,
"lft": 104,
"rgt": 111,
"depth": 1,
"user_id": 5,
"active": 1,
"old_id": "39",
"publish_at": "2017-12-29 12:37:43",
"tax": 0,
"created_at": "2017-12-29 07:07:43",
"updated_at": "2018-01-02 12:59:56",
"children": [{
"id": 54,
"name": "zte avid plus",
"slug": "zte-avid-plus",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 53,
"lft": 105,
"rgt": 106,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "151",
"publish_at": "2017-12-29 12:38:04",
"tax": 0,
"created_at": "2017-12-29 07:08:04",
"updated_at": "2018-01-02 13:00:14",
"children": []
}, {
"id": 55,
"name": "zte avid trio",
"slug": "zte-avid-trio",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 53,
"lft": 107,
"rgt": 108,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "152",
"publish_at": "2017-12-29 12:38:25",
"tax": 0,
"created_at": "2017-12-29 07:08:25",
"updated_at": "2018-01-02 13:00:25",
"children": []
}, {
"id": 56,
"name": "zte zmax pro",
"slug": "zte-zmax-pro",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 53,
"lft": 109,
"rgt": 110,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "153",
"publish_at": "2017-12-29 12:38:57",
"tax": 0,
"created_at": "2017-12-29 07:08:57",
"updated_at": "2018-01-02 13:00:44",
"children": []
}]
}, {
"id": 57,
"name": "BLU PHONES",
"slug": "blu-phones",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 1,
"lft": 112,
"rgt": 127,
"depth": 1,
"user_id": 5,
"active": 1,
"old_id": "176",
"publish_at": "2017-12-29 12:39:19",
"tax": 0,
"created_at": "2017-12-29 07:09:19",
"updated_at": "2018-01-02 13:01:12",
"children": [{
"id": 58,
"name": "BLU DASH X2",
"slug": "blu-dash-x2",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 57,
"lft": 113,
"rgt": 114,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "177",
"publish_at": "2017-12-29 12:39:53",
"tax": 0,
"created_at": "2017-12-29 07:09:53",
"updated_at": "2018-01-02 13:01:43",
"children": []
}, {
"id": 64,
"name": "Blu M7 Touch boom",
"slug": "blu-m7-touch-boom",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 57,
"lft": 125,
"rgt": 126,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "365",
"publish_at": "2017-12-29 12:42:30",
"tax": 0,
"created_at": "2017-12-29 07:12:30",
"updated_at": "2018-01-02 13:03:40",
"children": []
}]
}]
}]
现在我有一个单独的 SELECTED NODES 数组
[{
"id": 10945,
"product_id": 5099,
"product_parent_id": 5099,
"category_id": 1,
"product_no": 2801,
"created_at": "2018-01-11 13:53:05",
"updated_at": "2018-01-11 13:53:05"
}, {
"id": 10944,
"product_id": 5099,
"product_parent_id": 5099,
"category_id": 5,
"product_no": 2801,
"created_at": "2018-01-11 13:53:00",
"updated_at": "2018-01-11 13:53:00"
}, {
"id": 10943,
"product_id": 5099,
"product_parent_id": 5099,
"category_id": 3,
"product_no": 2801,
"created_at": "2018-01-11 13:53:00",
"updated_at": "2018-01-11 13:53:00"
}, {
"id": 10939,
"product_id": 5099,
"product_parent_id": 5099,
"category_id": 2,
"product_no": 2801,
"created_at": "2018-01-11 13:32:00",
"updated_at": "2018-01-11 13:32:00"
}]
现在我有了这个功能,它有助于渲染节点并以所需格式创建 JSON。
public static function renderSelectedNode($node, $selectedNodes) {
//dd($selectedNodes);
$fullchild = [];
$fulltext = $node->name;
$fullid = $node->id;
$fullparentid = $node->parent_id;
$fullslug = $node->slug;
if ( $node->children()->count() > 0 ) {
foreach($node->children as $child){
$fullchild[] = self::renderSelectedNode($child, $selectedNodes);
}
}
else
{
foreach($selectedNodes as $selectedNode){
if($node->id == $selectedNode['category_id']){
return $mainArray = ['text'=>$fulltext,'slug'=>$fullslug, 'id'=> $fullid ,"parent_id"=> $fullparentid, 'state' => ['selected'=>true]];
}
}
return $mainArray = ['text'=>$fulltext,'slug'=>$fullslug, 'id'=> $fullid ,"parent_id"=> $fullparentid];
}
if(count($fullchild)>0) {
return $mainArray = ['text'=>$fulltext ,'slug'=>$fullslug , 'id'=> $fullid ,"parent_id"=> $fullparentid,'children'=>$fullchild];
}
else{
return $mainArray = ['text'=>$fulltext,'slug'=>$fullslug, 'id'=> $fullid ,"parent_id"=> $fullparentid];
}
}
现在我不确定为什么我没有正确获取选定的节点。特别是可以轻松选择像 "Apple" 和 "Phone Deals" 子子节点中选择的父节点。我确信我的条件有问题。
我想将 'state' => ['selected' => true]
添加到所选节点。
谢谢! (提前)
您只选择没有子节点的节点,因此永远不会选择父节点。
试试这个:
function renderSelectedNode($node, $selectedNodes) {
//dd($selectedNodes);
$fullchild = [];
$fulltext = $node->name;
$fullid = $node->id;
$fullparentid = $node->parent_id;
$fullslug = $node->slug;
if ( $node->children()->count() > 0 ) {
foreach($node->children as $child){
$fullchild[] = self::renderSelectedNode($child, $selectedNodes);
}
}
$mainArray = ['text'=>$fulltext,'slug'=>$fullslug, 'id'=> $fullid ,"parent_id"=> $fullparentid,'children'=>$fullchild];
foreach($selectedNodes as $selectedNode){
if($node->id == $selectedNode['category_id']){
$mainArray['state'] = ['selected'=>true];
}
}
return $mainArray;
}
我正在尝试从我选择一些节点存储在数据库中的地方实施 JsTree。选择节点并将其提交到数据库后,我想在从数据库中获取节点后保留这些节点。或者你可以说,当我来编辑表单时,它应该向我显示在 JsTree 中选择的子类别的选定类别。这是我正在尝试的方式。
我的 JSON 树数据如下所示,
[{
"id": 1,
"name": "PHONE DEALS",
"slug": "phone-deals",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": null,
"lft": 1,
"rgt": 130,
"depth": 0,
"user_id": 5,
"active": 1,
"old_id": "1",
"publish_at": "2017-12-29 12:04:30",
"tax": 0,
"created_at": "2017-12-29 06:34:30",
"updated_at": "2018-01-02 12:34:46",
"children": [{
"id": 2,
"name": "Apple",
"slug": "apple",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 1,
"lft": 2,
"rgt": 27,
"depth": 1,
"user_id": 5,
"active": 1,
"old_id": "2",
"publish_at": "2017-12-29 12:04:48",
"tax": 0,
"created_at": "2017-12-29 06:34:48",
"updated_at": "2018-01-02 12:37:53",
"children": [{
"id": 3,
"name": "iphone 5",
"slug": "iphone-5",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 3,
"rgt": 4,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "131",
"publish_at": "2017-12-29 12:05:32",
"tax": 0,
"created_at": "2017-12-29 06:35:32",
"updated_at": "2018-01-02 12:38:22",
"children": []
}, {
"id": 5,
"name": "iphone 4s",
"slug": "iphone-4s",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 7,
"rgt": 8,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "132",
"publish_at": "2017-12-29 12:15:08",
"tax": 0,
"created_at": "2017-12-29 06:45:08",
"updated_at": "2018-01-02 12:38:41",
"children": []
}, {
"id": 6,
"name": "iphone 5se",
"slug": "iphone-5se",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 9,
"rgt": 10,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "133",
"publish_at": "2017-12-29 12:15:30",
"tax": 0,
"created_at": "2017-12-29 06:45:30",
"updated_at": "2018-01-02 12:39:19",
"children": []
}, {
"id": 7,
"name": "iphone 5s",
"slug": "iphone-5s",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 11,
"rgt": 12,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "134",
"publish_at": "2017-12-29 12:17:09",
"tax": 0,
"created_at": "2017-12-29 06:47:09",
"updated_at": "2018-01-02 12:40:12",
"children": []
}, {
"id": 8,
"name": "iphone 5c",
"slug": "iphone-5c",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 13,
"rgt": 14,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "135",
"publish_at": "2017-12-29 12:17:29",
"tax": 0,
"created_at": "2017-12-29 06:47:29",
"updated_at": "2018-01-02 12:40:36",
"children": []
}, {
"id": 9,
"name": "iphone 6",
"slug": "iphone-6",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 15,
"rgt": 16,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "136",
"publish_at": "2017-12-29 12:17:48",
"tax": 0,
"created_at": "2017-12-29 06:47:48",
"updated_at": "2018-01-02 12:41:02",
"children": []
}, {
"id": 10,
"name": "iphone 6s",
"slug": "iphone-6s",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 17,
"rgt": 18,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "137",
"publish_at": "2017-12-29 12:18:07",
"tax": 0,
"created_at": "2017-12-29 06:48:07",
"updated_at": "2018-01-02 12:41:21",
"children": []
}, {
"id": 11,
"name": "iphone 6s plus",
"slug": "iphone-6s-plus",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 19,
"rgt": 20,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "138",
"publish_at": "2017-12-29 12:18:25",
"tax": 0,
"created_at": "2017-12-29 06:48:25",
"updated_at": "2018-01-02 12:41:39",
"children": []
}, {
"id": 12,
"name": "iphone 6 plus",
"slug": "iphone-6-plus",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 21,
"rgt": 22,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "139",
"publish_at": "2017-12-29 12:18:42",
"tax": 0,
"created_at": "2017-12-29 06:48:42",
"updated_at": "2018-01-02 12:42:17",
"children": []
}, {
"id": 13,
"name": "iphone 7",
"slug": "iphone-7",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 23,
"rgt": 24,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "140",
"publish_at": "2017-12-29 12:19:04",
"tax": 0,
"created_at": "2017-12-29 06:49:04",
"updated_at": "2018-01-02 12:42:44",
"children": []
}, {
"id": 14,
"name": "iphone 7 plus",
"slug": "iphone-7-plus",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 2,
"lft": 25,
"rgt": 26,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "141",
"publish_at": "2017-12-29 12:19:27",
"tax": 0,
"created_at": "2017-12-29 06:49:27",
"updated_at": "2018-01-02 12:42:58",
"children": []
}]
}, {
"id": 16,
"name": "Samsung",
"slug": "samsung",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 1,
"lft": 30,
"rgt": 69,
"depth": 1,
"user_id": 5,
"active": 1,
"old_id": "4",
"publish_at": "2017-12-29 12:23:23",
"tax": 0,
"created_at": "2017-12-29 06:53:23",
"updated_at": "2018-01-02 12:43:15",
"children": [{
"id": 17,
"name": "GALAXY j3",
"slug": "galaxy-j3",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 31,
"rgt": 32,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "154",
"publish_at": "2017-12-29 12:23:44",
"tax": 0,
"created_at": "2017-12-29 06:53:44",
"updated_at": "2018-01-02 12:43:30",
"children": []
}, {
"id": 18,
"name": "GALAXY j5",
"slug": "galaxy-j5",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 33,
"rgt": 34,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "155",
"publish_at": "2017-12-29 12:24:05",
"tax": 0,
"created_at": "2017-12-29 06:54:05",
"updated_at": "2018-01-02 12:43:59",
"children": []
}, {
"id": 19,
"name": "GALAXY j7",
"slug": "galaxy-j7",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 35,
"rgt": 36,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "156",
"publish_at": "2017-12-29 12:24:24",
"tax": 0,
"created_at": "2017-12-29 06:54:24",
"updated_at": "2018-01-03 06:21:33",
"children": []
}, {
"id": 20,
"name": "GALAXY note 2",
"slug": "galaxy-note-2",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 37,
"rgt": 38,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "157",
"publish_at": "2017-12-29 12:24:42",
"tax": 0,
"created_at": "2017-12-29 06:54:42",
"updated_at": "2018-01-02 12:45:01",
"children": []
}, {
"id": 25,
"name": "GALAXY S4",
"slug": "galaxy-s4",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 47,
"rgt": 48,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "166",
"publish_at": "2017-12-29 12:26:34",
"tax": 0,
"created_at": "2017-12-29 06:56:34",
"updated_at": "2018-01-02 12:47:06",
"children": []
}, {
"id": 26,
"name": "GALAXY S5",
"slug": "galaxy-s5",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 49,
"rgt": 50,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "167",
"publish_at": "2017-12-29 12:26:51",
"tax": 0,
"created_at": "2017-12-29 06:56:51",
"updated_at": "2018-01-02 12:47:25",
"children": []
}, {
"id": 27,
"name": "GALAXY S6",
"slug": "galaxy-s6",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 51,
"rgt": 52,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "168",
"publish_at": "2017-12-29 12:27:11",
"tax": 0,
"created_at": "2017-12-29 06:57:11",
"updated_at": "2018-01-02 12:48:02",
"children": []
}, {
"id": 28,
"name": "GALAXY S6 EDGE",
"slug": "galaxy-s6-edge",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 53,
"rgt": 54,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "169",
"publish_at": "2017-12-29 12:27:30",
"tax": 0,
"created_at": "2017-12-29 06:57:30",
"updated_at": "2018-01-02 12:48:28",
"children": []
}, {
"id": 29,
"name": "GALAXY S7 ",
"slug": "galaxy-s7",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 55,
"rgt": 56,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "171",
"publish_at": "2017-12-29 12:27:52",
"tax": 0,
"created_at": "2017-12-29 06:57:52",
"updated_at": "2018-01-02 12:50:04",
"children": []
}, {
"id": 30,
"name": "GALAXY S7 EDGE",
"slug": "galaxy-s7-edge",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 57,
"rgt": 58,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "172",
"publish_at": "2017-12-29 12:28:14",
"tax": 0,
"created_at": "2017-12-29 06:58:14",
"updated_at": "2018-01-02 12:50:59",
"children": []
}, {
"id": 31,
"name": "mega 6.3",
"slug": "mega-63",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 59,
"rgt": 62,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "173",
"publish_at": "2017-12-29 12:28:40",
"tax": 0,
"created_at": "2017-12-29 06:58:40",
"updated_at": "2018-01-02 12:51:39",
"children": [{
"id": 32,
"name": "Blu life XL",
"slug": "blu-life-xl",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 31,
"lft": 60,
"rgt": 61,
"depth": 3,
"user_id": 5,
"active": 1,
"old_id": "366",
"publish_at": "2017-12-29 12:29:20",
"tax": 0,
"created_at": "2017-12-29 06:59:20",
"updated_at": "2018-01-02 12:52:33",
"children": []
}]
}, {
"id": 33,
"name": "Samsung S8 Plus",
"slug": "samsung-s8-plus",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 63,
"rgt": 64,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "312",
"publish_at": "2017-12-29 12:29:50",
"tax": 0,
"created_at": "2017-12-29 06:59:50",
"updated_at": "2018-01-02 12:53:10",
"children": []
}, {
"id": 34,
"name": "Samsung S8",
"slug": "samsung-s8",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 65,
"rgt": 66,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "313",
"publish_at": "2017-12-29 12:30:09",
"tax": 0,
"created_at": "2017-12-29 07:00:09",
"updated_at": "2018-01-02 12:53:36",
"children": []
}, {
"id": 35,
"name": "GALAXY S6 EDGE PLUS",
"slug": "galaxy-s6-edge-plus",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 16,
"lft": 67,
"rgt": 68,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "335",
"publish_at": "2017-12-29 12:30:26",
"tax": 0,
"created_at": "2017-12-29 07:00:26",
"updated_at": "2018-01-02 12:53:53",
"children": []
}]
}, {
"id": 36,
"name": "lg",
"slug": "lg",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 1,
"lft": 70,
"rgt": 89,
"depth": 1,
"user_id": 5,
"active": 1,
"old_id": "33",
"publish_at": "2017-12-29 12:31:18",
"tax": 0,
"created_at": "2017-12-29 07:01:18",
"updated_at": "2018-01-02 12:54:09",
"children": [{
"id": 37,
"name": "lg g2",
"slug": "lg-g2",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 36,
"lft": 71,
"rgt": 72,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "142",
"publish_at": "2017-12-29 12:31:39",
"tax": 0,
"created_at": "2017-12-29 07:01:39",
"updated_at": "2018-01-02 12:54:51",
"children": []
}, {
"id": 38,
"name": "lg g3",
"slug": "lg-g3",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 36,
"lft": 73,
"rgt": 74,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "143",
"publish_at": "2017-12-29 12:32:00",
"tax": 0,
"created_at": "2017-12-29 07:02:00",
"updated_at": "2018-01-02 12:55:14",
"children": []
}, {
"id": 39,
"name": "lg g4",
"slug": "lg-g4",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 36,
"lft": 75,
"rgt": 76,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "144",
"publish_at": "2017-12-29 12:32:19",
"tax": 0,
"created_at": "2017-12-29 07:02:19",
"updated_at": "2018-01-02 12:55:29",
"children": []
}]
}, {
"id": 46,
"name": "htc",
"slug": "htc",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 1,
"lft": 90,
"rgt": 97,
"depth": 1,
"user_id": 5,
"active": 1,
"old_id": "34",
"publish_at": "2017-12-29 12:34:56",
"tax": 0,
"created_at": "2017-12-29 07:04:56",
"updated_at": "2018-01-02 12:57:15",
"children": [{
"id": 47,
"name": "desire 530",
"slug": "desire-530",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 46,
"lft": 91,
"rgt": 92,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "128",
"publish_at": "2017-12-29 12:35:15",
"tax": 0,
"created_at": "2017-12-29 07:05:15",
"updated_at": "2018-01-02 12:57:58",
"children": []
}, {
"id": 48,
"name": "Desire 626s",
"slug": "desire-626s",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 46,
"lft": 93,
"rgt": 94,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "129",
"publish_at": "2017-12-29 12:35:34",
"tax": 0,
"created_at": "2017-12-29 07:05:34",
"updated_at": "2018-01-02 12:58:10",
"children": []
}, {
"id": 49,
"name": "DESIRE 510",
"slug": "desire-510",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 46,
"lft": 95,
"rgt": 96,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "334",
"publish_at": "2017-12-29 12:35:52",
"tax": 0,
"created_at": "2017-12-29 07:05:52",
"updated_at": "2018-01-02 12:58:29",
"children": []
}]
}, {
"id": 50,
"name": "sky",
"slug": "sky",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 1,
"lft": 98,
"rgt": 103,
"depth": 1,
"user_id": 5,
"active": 1,
"old_id": "35",
"publish_at": "2017-12-29 12:36:20",
"tax": 0,
"created_at": "2017-12-29 07:06:20",
"updated_at": "2018-01-02 12:58:50",
"children": [{
"id": 51,
"name": "sky 4.o d",
"slug": "sky-4o-d",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 50,
"lft": 99,
"rgt": 100,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "174",
"publish_at": "2017-12-29 12:36:40",
"tax": 0,
"created_at": "2017-12-29 07:06:40",
"updated_at": "2018-01-02 12:59:13",
"children": []
}, {
"id": 52,
"name": "sky 5.o w",
"slug": "sky-5o-w",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 50,
"lft": 101,
"rgt": 102,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "175",
"publish_at": "2017-12-29 12:37:03",
"tax": 0,
"created_at": "2017-12-29 07:07:03",
"updated_at": "2018-01-02 12:59:32",
"children": []
}]
}, {
"id": 53,
"name": "zte",
"slug": "zte",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 1,
"lft": 104,
"rgt": 111,
"depth": 1,
"user_id": 5,
"active": 1,
"old_id": "39",
"publish_at": "2017-12-29 12:37:43",
"tax": 0,
"created_at": "2017-12-29 07:07:43",
"updated_at": "2018-01-02 12:59:56",
"children": [{
"id": 54,
"name": "zte avid plus",
"slug": "zte-avid-plus",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 53,
"lft": 105,
"rgt": 106,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "151",
"publish_at": "2017-12-29 12:38:04",
"tax": 0,
"created_at": "2017-12-29 07:08:04",
"updated_at": "2018-01-02 13:00:14",
"children": []
}, {
"id": 55,
"name": "zte avid trio",
"slug": "zte-avid-trio",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 53,
"lft": 107,
"rgt": 108,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "152",
"publish_at": "2017-12-29 12:38:25",
"tax": 0,
"created_at": "2017-12-29 07:08:25",
"updated_at": "2018-01-02 13:00:25",
"children": []
}, {
"id": 56,
"name": "zte zmax pro",
"slug": "zte-zmax-pro",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 53,
"lft": 109,
"rgt": 110,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "153",
"publish_at": "2017-12-29 12:38:57",
"tax": 0,
"created_at": "2017-12-29 07:08:57",
"updated_at": "2018-01-02 13:00:44",
"children": []
}]
}, {
"id": 57,
"name": "BLU PHONES",
"slug": "blu-phones",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 1,
"lft": 112,
"rgt": 127,
"depth": 1,
"user_id": 5,
"active": 1,
"old_id": "176",
"publish_at": "2017-12-29 12:39:19",
"tax": 0,
"created_at": "2017-12-29 07:09:19",
"updated_at": "2018-01-02 13:01:12",
"children": [{
"id": 58,
"name": "BLU DASH X2",
"slug": "blu-dash-x2",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 57,
"lft": 113,
"rgt": 114,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "177",
"publish_at": "2017-12-29 12:39:53",
"tax": 0,
"created_at": "2017-12-29 07:09:53",
"updated_at": "2018-01-02 13:01:43",
"children": []
}, {
"id": 64,
"name": "Blu M7 Touch boom",
"slug": "blu-m7-touch-boom",
"featured_image": "",
"slider_image": "",
"featured_category": 0,
"description": "",
"type": "Product",
"parent_id": 57,
"lft": 125,
"rgt": 126,
"depth": 2,
"user_id": 5,
"active": 1,
"old_id": "365",
"publish_at": "2017-12-29 12:42:30",
"tax": 0,
"created_at": "2017-12-29 07:12:30",
"updated_at": "2018-01-02 13:03:40",
"children": []
}]
}]
}]
现在我有一个单独的 SELECTED NODES 数组
[{
"id": 10945,
"product_id": 5099,
"product_parent_id": 5099,
"category_id": 1,
"product_no": 2801,
"created_at": "2018-01-11 13:53:05",
"updated_at": "2018-01-11 13:53:05"
}, {
"id": 10944,
"product_id": 5099,
"product_parent_id": 5099,
"category_id": 5,
"product_no": 2801,
"created_at": "2018-01-11 13:53:00",
"updated_at": "2018-01-11 13:53:00"
}, {
"id": 10943,
"product_id": 5099,
"product_parent_id": 5099,
"category_id": 3,
"product_no": 2801,
"created_at": "2018-01-11 13:53:00",
"updated_at": "2018-01-11 13:53:00"
}, {
"id": 10939,
"product_id": 5099,
"product_parent_id": 5099,
"category_id": 2,
"product_no": 2801,
"created_at": "2018-01-11 13:32:00",
"updated_at": "2018-01-11 13:32:00"
}]
现在我有了这个功能,它有助于渲染节点并以所需格式创建 JSON。
public static function renderSelectedNode($node, $selectedNodes) {
//dd($selectedNodes);
$fullchild = [];
$fulltext = $node->name;
$fullid = $node->id;
$fullparentid = $node->parent_id;
$fullslug = $node->slug;
if ( $node->children()->count() > 0 ) {
foreach($node->children as $child){
$fullchild[] = self::renderSelectedNode($child, $selectedNodes);
}
}
else
{
foreach($selectedNodes as $selectedNode){
if($node->id == $selectedNode['category_id']){
return $mainArray = ['text'=>$fulltext,'slug'=>$fullslug, 'id'=> $fullid ,"parent_id"=> $fullparentid, 'state' => ['selected'=>true]];
}
}
return $mainArray = ['text'=>$fulltext,'slug'=>$fullslug, 'id'=> $fullid ,"parent_id"=> $fullparentid];
}
if(count($fullchild)>0) {
return $mainArray = ['text'=>$fulltext ,'slug'=>$fullslug , 'id'=> $fullid ,"parent_id"=> $fullparentid,'children'=>$fullchild];
}
else{
return $mainArray = ['text'=>$fulltext,'slug'=>$fullslug, 'id'=> $fullid ,"parent_id"=> $fullparentid];
}
}
现在我不确定为什么我没有正确获取选定的节点。特别是可以轻松选择像 "Apple" 和 "Phone Deals" 子子节点中选择的父节点。我确信我的条件有问题。
我想将 'state' => ['selected' => true]
添加到所选节点。
谢谢! (提前)
您只选择没有子节点的节点,因此永远不会选择父节点。
试试这个:
function renderSelectedNode($node, $selectedNodes) {
//dd($selectedNodes);
$fullchild = [];
$fulltext = $node->name;
$fullid = $node->id;
$fullparentid = $node->parent_id;
$fullslug = $node->slug;
if ( $node->children()->count() > 0 ) {
foreach($node->children as $child){
$fullchild[] = self::renderSelectedNode($child, $selectedNodes);
}
}
$mainArray = ['text'=>$fulltext,'slug'=>$fullslug, 'id'=> $fullid ,"parent_id"=> $fullparentid,'children'=>$fullchild];
foreach($selectedNodes as $selectedNode){
if($node->id == $selectedNode['category_id']){
$mainArray['state'] = ['selected'=>true];
}
}
return $mainArray;
}