в каком браузере?
ю, что этот вопрос уже задавался, но решения не помогли мне. Я пытаюсь сохранить новый порядок элементов в базе данных.
Я очень сильно упростил, но это основная идея. У меня есть форма со встроенным сортируемым списком.
<form id="itemlist">
<ul id="itemsort">
<li id="Item_1">Item<input type="hidden" name="itemid[]" value="itemsRowID01"/></li>
<li id="Item_2">Item<input type="hidden" name="itemid[]" value="itemsRowID02"/></li>
<li id="Item_3">Item<input type="hidden" name="itemid[]" value="itemsRowID03"/></li>
<li id="Item_4">Item<input type="hidden" name="itemid[]" value="itemsRowID04"/></li>
</ul>
</form>
У меня есть JQuery и JQuery UI Loaded и следующий код включает функцию сортировки списка и отправляет идентификаторы элементов и новый порядок сортировки в скрипт php. переменная editor является публичной переменной, которая устанавливается при загрузке и работает нормально. Сортировка работает нормально, но значение neworder, которое публикует пост, не меняется, когда я переупорядочиваю список
//sorting feature
$("#itemsort").live('hover', function() {
$("#itemsort").sortable({
opacity:.5,
update : function () {
var neworder = $('#itemsort').sortable('serialize');
var inputs = serializePost('#itemlist');
$.post("core/actions.php",{
'order': editor,
'inputs': inputs,
'neworder': neworder},function(){
alert("Order saved.", 1);
});
}
});
});
На actions.php ...
if(isset($_POST['order'])){
//set a variable for each post
$batchid = $_POST['inputs']['itemid'];
parse_str($_POST['neworder'], $neworder);
//count the number of entries to be ordered
$count = count($batchid);
//use the count to create an incremental loop for each item to be updated.
$i=0;
while ($i <= $count) {
$query ="UPDATE {$_POST['order']} SET order=$neworder[item][$i] WHERE id=$batchid[$i]";
++$i;
}
}
Я не уверен, почему порядок, который я получаю для каждого предмета, не изменится.
Есть идеи?
-L