2017-03-28 17 views
1

私がjsTreeで行った変更をデータベースに保存したいです。私はさまざまな方法を試しましたが、仕事はできません。私はcodeigniterで働いています。あなたができるなら私を助けてください。ありがとうございました。ここ は私のコードで、 view.php:jsTreeからの変更をどのようにデータベースに保存するのですか?

<button id="target" type="submit">Click here</button> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#tree-container').on('changed.jstree', function (e, data) { 
      var i, j, r = []; 
      // var state = false; 
      for (i = 0, j = data.selected.length; i < j; i++) { 
       r.push(data.instance.get_node(data.selected[i]).id); 
      } 
      $('#txttuser').val(r.join(',')); 
     }).jstree({ 
      'plugins': ["checkbox", "dnd", "search", "contextmenu"], 
      'core': { 
       "check_callback" : true, 
       "multiple": true, 
       'data': { 
        "url": "getChildren", 
        "dataType": "json" 
       } 
      }, 
      'checkbox': { 
       three_state: false, 
       cascade: 'up' 
      }, 
      'plugins': ["dnd","contextmenu","search","wholerow"], 
     } 
     ); 
    }); 

    $("#target").click(function() { 
     var v =$('#tree-container').jstree(true).get_json();  
     var mytext = JSON.stringify(v);  
     alert(mytext); }); 
</script> 

<div class="row"> 
    <div class="container"> 
     <input type="hidden" name="node" id="node" value="" /> 
     <div class="form-group"> <div id="tree-container"></div> 
     </div> 
    </div> 
</div> 

controller.php:

function getChildren() { 

    $this->load->model('Category_model'); 

    $result = $this->Category_model->tree_all(); 

    $itemsByReference = array(); 
// Build array of item references: 
     foreach($result as $key => &$item) { 
     $itemsByReference[$item['category_id']] = &$item; 
// Children array: 
     $itemsByReference[$item['category_id']]['children'] = array(); 
// Empty data class (so that json_encode adds "data: {}") 
     $itemsByReference[$item['category_id']]['data'] = new StdClass(); 

    } 
// Set items as children of the relevant parent item. 
    foreach($result as $key => &$item) 
     if($item['parent_id'] &&  isset($itemsByReference[$item['parent_id']])) 
      $itemsByReference [$item['parent_id']]['children'][] = &$item; 


// Remove items that were added to parents elsewhere: 
    foreach($result as $key => &$item) { 
     if($item['parent_id'] && isset($itemsByReference[$item['parent_id']])) 
      unset($result[$key]); 



    } 

    foreach ($result as $row) { 
     $data[] = $row; 

    } 
// Encode: 
echo json_encode($data); 

    } 

model.php:

function tree_all() { 
$result = $this->db->query("SELECT category_id, category,category as text, parent_id FROM category ")->result_array(); 
foreach ($result as $row) { 
    $data[] = $row; 

} 
    return $data; 

} 

Pleeaaaseのheeelpのmeee!私はこれを数日間把握しようとしています。

"create" : { 

これは、コードのブロックは、作成をクリックしたときに実行されるで、あなたを置く:追加、編集、JSTreeで更新し、最初にすべてのjstree.jsをダウンロードして、次の行を確認し管理するには

+0

**私はこのラインで**私は戻って、データベースへのjsTreeで行った変更を保存したいですjstreeのチェックボックスで選択/選択解除されたことを意味しますか? –

+0

No. nドロップを作成、削除、名前変更、編集、ドラッグします。 –

+0

あなたがいない! –

答えて

1

add/updateデータベースへのajax呼び出しでここにコードロジックを作成します。

editと同じ方法で、deleteを管理します。注

editdeleteがあるだけcreate

Ajaxの構文の後:

$.ajax({ 
    url : '<?php echo base_url().'/controllerfunction' ?>', 
    method : 'post', 
    data: { 
    key : value 
    }, 
    success: function(response) // response from controller function 
    { 
    // your code here 
    } 
}); 
+0

私はそれを理解していませんが、私はajax呼び出しを書く方法はわかりません。 :(私は関数のを見つけた –

+0

更新された答えを確認してください –

関連する問題