Исходя из вашего вопроса, я могу дать вам демонстрацию, чтобы показать вам, как двигаться дальше с вашими требованиями.
Пожалуйста, отметьте это ОБНОВЛЕННАЯ СКРЫТА .Как вы и просили, мы используем Dragtable js .
После того, как сортировка завершена, мы проверяем, что каждая строка таблицы находит каждый столбец соответствующей строки и создает древовидную структуру json.
Html
<table id="sort_table">
<thead>
<tr>
<th></th>
<th class="draggable">Col1</th>
<th class="draggable">Col2</th>
<th class="draggable">Col3</th>
<th class="draggable">Col4</th>
</tr>
</thead>
<tbody>
<tr>
<td>Row1</td>
<td>Data11</td>
<td>Data12</td>
<td>Data13</td>
<td>Data14</td>
</tr>
<tr>
<td>Row2</td>
<td>Data21</td>
<td>Data22</td>
<td>Data23</td>
<td>Data24</td>
</tr>
<tr>
<td>Row3</td>
<td>Data31</td>
<td>Data32</td>
<td>Data33</td>
<td>Data34</td>
</tr>
<tr>
<td>Row4</td>
<td>Data41</td>
<td>Data42</td>
<td>Data43</td>
<td>Data44</td>
</tr>
</tbody>
</table>
JS ( ОБНОВЛЕНО )
$(document).ready(function() {
$('#sort_table').dragtable({
dragaccept: '.draggable',
beforeStop: function() {
var tree = {};
var rows = [];
$('#sort_table tr').each(function() {
var col_count = 0;
var cols = [];
$(this).children().each(function() {
cols[col_count] = $(this).html();
col_count++;
});
rows.push(cols);
});
tree.data = rows;
var tree_json = JSON.stringify(tree); // use the variable to save to DB
console.log(tree_json);
}
});
});
Вы можете сохранить переменную tree_json в базе данных (Вызовите ajax на phpи сохранить в БД)
При каждой загрузке страницы вы можете перенести значение из базы данных в переменную и, используя json_decode, сделать строку объектом json
$table_structure = ; // Code to take from db
$table_structure = json_decode($table_structure);
Вы можете копировать и вставлять jsonиз консоли, чтобы проверить, действительно ли это с помощью JSONLint