티스토리 뷰

jquery

jstree node ajax / open / node child ajax / delete

그래그래그래놀라 2020. 6. 26. 13:55

var jstree = {
   id: "id,
   init: function () {
       this.initAjax(this.id);
   },
  initTree: function (node) {  
      $("#jstree").jstree({
      core: {
                      check_callback: true, // check_callback 이 없으면 create_node가 실행되지않는다
                      data: node //데이터 연결
                },
      types: {
     'default': {
             'icon': 'fa fas-user'
                     }
      },
      }).bind('select_node.jstree', function (event, data) { // open이 아닌 노드 내용클릭시 이벤트
      }).on('open_node.jstree', function (e, data) { // 노드를 열때 발생하는 이벤트
      $.ajax({
          url: "/examples/request.php", // 서버의 URL 주소
          data: {id: "id"}, // 보낼 데이터
          type: "POST", // 요청 방식(GET,POST)
          dataType: "json", // 데이터의 타입
          success: function (data) { // 전송 성공
                  $.each(data, function (k, v) { // data는 json데이터 , k는 data의 key , v는 data의 value
                           $("#jstree").jstree().delete_node($("#" + v.id)); //존재하는 노드 삭제 필요시 사용
                           $('#jstree').jstree("create_node", v.parent, v, "last", function (new_node) { // 새로운 노드추가
                                                      // create_node / jstree의 함수
                                                      // v.parent / 추가 node가 들어가야할 id
                                                      // v / 들어가야할 value
                                                      // "last" / 들어가야할 곳의 마지막 ex)) first , last
                  });
          });
 },
         error: function (request, status, error) { //error 시
                           alert("status:" + request.status + "\n" + "message:" + request.responseText + "\n" + "error:" + error); 
                           
//error메세지
          }
         });
      });
 },
 initAjax: function (id) {
                  $.ajax({
                                    url: "/examples/request.php", // 서버의 URL 주소
                                    data: {id: "id"}, // 보낼 데이터
                                    type: "POST", // 요청 방식(GET,POST)
                                    dataType: "json", // 데이터의 타입
                                    success: function (data) { // 전송 성공
                                                      $.each(data, function (k, v) { // data는 json데이터 , k는 data의 key , v는 data의 value
                                                                       $("#jstree").jstree().delete_node($("#" + v.id)); //존재하는 노드 삭제 필요시 사용
                                                                        $('#jstree').jstree("create_node", v.parent, v, "last", function (new_node) { 
                                                                                
// 새로운 노드추가
                                                                                // create_node / jstree의 함수
                                                                                // v.parent / 추가 node가 들어가야할 id
                                                                                // v / 들어가야할 value
                                                                                 // "last" / 들어가야할 곳의 마지막 ex)) first , last
                                                             });
                                                        });
                                     },
                                    error: function (request, status, error) { //error 시
                                             alert("status:" + request.status + "\n" + "message:" + request.responseText + "\n" + "error:" + error); 
                                            
//error메세지
                                    }
                  });
         }
 }

window.onload = function () {
jstree.init();
};

'jquery' 카테고리의 다른 글

슬릭슬라이더 (slick slider)  (0) 2024.07.09
dataables search & customize 하기  (0) 2020.08.04
Jquery 텍스트 복사  (0) 2020.01.08
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함