2016-10-18 3 views
3

Как вставить jstree значения флажка в базу данных

<script type="text/javascript"> 
 
$(document).ready(function(){ 
 
    //fill data to tree with AJAX call 
 
    $('#tree-container').jstree({ 
 
\t 'plugins': ["wholerow", "checkbox"], 
 
     'core' : { 
 
      'data' : { 
 
       "url" : "response.php", 
 
       "dataType" : "json" // needed only if you do not supply JSON headers 
 
      } 
 
     } 
 
    }) 
 
}); 
 
</script> 
 

 

 
<div id="tree-container"></div>
<?php 
 
$servername = "localhost"; 
 
$username = "root"; 
 
$password = ""; 
 
$dbname = "defectsystem"; 
 

 
$conn = mysqli_connect($servername, $username, $password, $dbname) or die("Connection failed: " . mysqli_connect_error()); 
 
/* check connection */ 
 
if (mysqli_connect_errno()) { 
 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
 
    exit(); 
 
} 
 
$sql = "SELECT * FROM `treeview_items` "; 
 
$res = mysqli_query($conn, $sql) or die("database error:". mysqli_error($conn)); 
 
\t //iterate on results row and create new index array of data 
 
\t while($row = mysqli_fetch_assoc($res)) { 
 
\t \t $data[] = $row; 
 
\t } 
 
\t $itemsByReference = array(); 
 

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

 
// Set items as children of the relevant parent item. 
 
foreach($data 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($data as $key => &$item) { 
 
    if($item['parent_id'] && isset($itemsByReference[$item['parent_id']])) 
 
     unset($data[$key]); 
 
} 
 
// Encode: 
 
echo json_encode($data); 
 
?>

я успешно создать jstree с флажком. Однако, как я могу вставить значение флажка в базу данных, когда я нажимаю на нее и отправляю.

Спасибо, если кто-нибудь может мне помочь !! Если любой вопрос может задать мне следующий комментарий.

ответ

1

Попробуйте некоторые вещи, как это:

var array = []; 
// create an array 

$.each($("input[name='user_permission']:checked"), function(){ 
    permissions.push($(this).val()); 
}); 
// Iterate over each checkbox which is checked and push its value in the array variable. 

Ex:

...... 
var permissions = []; 
$.each($("input[name='user_permission']:checked"), function(){ 
    permissions.push($(this).val()); 
}); 

$.ajax({ 
    url   : 'add_permission.php', 
    method  : 'post', 
    data  : 
    { 
     permissions : JSON.stringify(permissions) 
    } 
    .... 
}); 
// After complete iteration you will get the value of each checked checkbox. 

Теперь вставьте его в базу данных с помощью Ajax вызова

+0

Ya, я должен был найти много подобного кодирования, как это. – eric

+0

Я использую его в своем проекте и работает как шарм –

+0

Например, function submitMe() { \t var checked_ids = []; \t $ ('# ваше дерево-ID') jstree ('get_checked', NULL, верно) .each (функция() { \t \t checked_ids.push (this.id); \t}). \t // установка в скрытое поле \t document.getElementById ('jsfields'). Value = checked_ids.join (","); } – eric

Смежные вопросы