나 자신도 문제가 발생했습니다. forum에는 양식 (form solution)을 통해 목록을 저장하기 위해 게시 된 솔루션이 있습니다. 개인적으로 나는 AJAX를 선호하므로 내 자신의 솔루션을 썼다.
변경 :
$('ol.sortable').nestedSortable({
disableNesting: 'no-nest',
forcePlaceholderSize: true,
handle: 'div',
helper: 'clone',
items: 'li',
maxLevels: 3,
opacity: .6,
placeholder: 'placeholder',
revert: 250,
tabSize: 25,
tolerance: 'pointer',
toleranceElement: '> div'
});
에서 :
$('ol.sortable').nestedSortable({
disableNesting: 'no-nest',
forcePlaceholderSize: true,
handle: 'div',
helper: 'clone',
items: 'li',
maxLevels: 3,
opacity: .6,
placeholder: 'placeholder',
revert: 250,
tabSize: 25,
tolerance: 'pointer',
toleranceElement: '> div',
update: function() {
list = $(this).nestedSortable('toHierarchy', {startDepthCount: 0});
$.post(
'http://www.domainname.com/ajax/ajax.php',
{ update_sql: 'ok', list: list },
function(data){
$("#result").hide().html(data).fadeIn('slow')
},
"html"
);
}
});
그런 다음 당신이 ajax.php 페이지를 만들 필요가 다음과 같이 문제를 AJAX 방식을 해결하려면 코드를 변경해야합니다
<? if (!empty($_REQUEST["list"]) && !empty($_REQUEST["update_sql"])) {
if ($_REQUEST["update_sql"] = 'ok') {
if (!empty($_REQUEST["list"])) {
$list = $_REQUEST["list"];
foreach ($list as $key => $value) {
mysql_query("UPDATE categories SET order = '" . $key . "' WHERE id = '" . $value['id'] . "'");
}
echo '<span class="success">Successfully updated.</span>';
}
} } ?>
PHP 코드는 개선 될 수 있습니다 (MySQL 주입 등을 확인하기 위해). 예제에서 제공하는 추가 기능을 필요없는 것처럼 제거 할 수도 있습니다. JavaScript에서 POST URL을 변경하는 것을 잊지 마세요.) 행운을 빌어 요!
고마워요. 그러나 나는 아직도 붙어있다. 나는 이론을 이해하지만, 내가 실제로 붙어있는 실제적인 적용을 이해한다. nestedSortable 목록의 직렬화에 대한 링크 또는 두 개의 자습서가 필요했습니다. 구조가 매우 혼란스럽고, 왼쪽><오른쪽 정렬 방법을 사용하는 예제는 데이터베이스가 구조화 된 방식 인 parent_id와 함께 예제가 필요합니다. – Tim