Ok już chyba wiem, przesyłasz dane na ten sam plik gdzie masz listę, to tak nie działa.
Przygotuj drugi plik np test2.php na który wysyłaj dane z ajaxa. Co wysyłasz podejrzyj w Firebugu lub (Shift+Control+I) w Chrom, zakładka Network. W test.php masz html i js w test2.php będziesz odbierał dane i zapisywał do bazy.
ps: jestem w trakcie przygotowywanie Ci kompletnego przykładu, jeśli zrobisz sam daj znać.
sort.php
<html>
<head>
<script type="text/javascript" src="jquery-1.8.0.min.js"></script>
<script type="text/javascript" src="jquery-ui-1.8.23.custom.min.js"></script>
</head>
<body>
<ul id="sortable">
<li id="_1">test_01</li>
<li id="_2">test_02</li>
<li id="_3">test_03</li>
<li id="_4">test_04</li>
<li id="_5">test_05</li>
<li id="_6">test_06</li>
</ul>
<br/>
<div id="data">
</div>
<script>
$(function() {
$( "#sortable" ).sortable();
$('#sortable').sortable({
update: function(event, ui) {
var result = $(this).sortable('toArray').toString();
saveOrder(result);
}
});
});
function saveOrder(_order){
$.ajax({
url: 'data.php',
type: "POST",
data: {
order:_order
},
success: function(data){
$('#data').html(data);
}
});
}
</script>
</body>
</html>
plik data.php
<?php
//var_dump($_POST['order']);
$newOrderID = explode(',',$_POST['order']); $order = 0;
foreach($newOrderID as $item)
{
echo 'Element ='.str_replace('_','',$item).' jego pozycja='.$order.'<br/>'; $order++;
}
?>