
19.09.2011, 20:41
|
Новичок на форуме
|
|
Регистрация: 19.09.2011
Сообщений: 6
|
|
ajax, js, drag&drop,
Добрый день.
Перетаскиваю строки таблицы с помощью
<script type="text/javascript">
$(document).ready(function() {
$("#table-2").tableDnD();
$('table').tableDnD({
onDrop: function(table, row) {
alert($('table').tableDnDSerialize());
},
dragHandle: "dragHandle"
});
});
</script>
Как сохранить порядок строк после перетаскивания? Желательно на ajax.
|
|

19.09.2011, 21:08
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
при чем тут аякс ?
|
|

20.09.2011, 09:51
|
Новичок на форуме
|
|
Регистрация: 19.09.2011
Сообщений: 6
|
|
Мне нужно чтобы на ajax было, но и от варианта на js я не откажусь
|
|

20.09.2011, 10:00
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
ясно. тогда прочитайте, что такое ajax, и что такое JS и поймите разницу.
|
|

20.09.2011, 10:04
|
Новичок на форуме
|
|
Регистрация: 19.09.2011
Сообщений: 6
|
|
Ответа нет?
|
|

20.09.2011, 10:08
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
если строки в таблице можно как-то различить друг от друга ( ID ), то можно сделать через cookies || localStorage. иначе - "через ajax", если сервер будет в указанном порядке выводить строки таблицы
|
|

20.09.2011, 11:26
|
Новичок на форуме
|
|
Регистрация: 19.09.2011
Сообщений: 6
|
|
Нашел пример
<script type="text/javascript">
$(document).ready(function(){
// ---------
$("#table-1").tableDnD({
onDragClass: "dragRow",
onDrop: function(table, row) {
var rows = table.tBodies[0].rows;
var messageString = "Перемещена строка " + row.id + "<br />Новый порядок сортировки: ";
for (var i=0; i<rows.length; i++) {
messageString += rows[i].id + " ";
}
$("#messageArea").html(messageString);
$("#table-1").find("tr[@id='"+ row.id +"']").fadeOut(700, function () {
$(this).fadeIn(300);
});
},
onDragStart: function(table, row) {
$("#messageArea").html("Перемещаем строку " + row.id);
}
});
});
</script>
в нем выводится список в messageArea
У меня два столбца position и id. Подскажите как мне сохранить это в массив для последующей обработки, чтобы я мог потом обратиться к этому массиву. Если можно, то приведите пример кода. В принципе мне наверное нужен только список id в новой последовательности.
Спасибо.
добавил
var arr = new Array;
//сохраняю список
for (var i=0; i<rows.length; i++) {
arr = rows[i].id;
}
как потом достучаться до этого массива из другого места?
Последний раз редактировалось GlooMMy, 20.09.2011 в 11:39.
|
|

20.09.2011, 13:58
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
передать функции, сделать глобальной переменной или передать php-скрипту
|
|

20.09.2011, 14:30
|
Новичок на форуме
|
|
Регистрация: 19.09.2011
Сообщений: 6
|
|
у меня не php, а asp, но это не важно. Как сделать глобальной?
Я вот думал таблицу заполнить этими данными, а потом считать из таблицы или так плохо?
как с помощью ajax сделать autopostback?
наверное что-то похожее будет:
$.ajax({
type: "POST",
url: "table-dnd-example.php",
timeout: 5000,
data: "w=" + w,
success: function(data){$("div#upd-dnd").html(data);},
error: function(data){$("div#upd-dnd").html("Error");}
});
Последний раз редактировалось GlooMMy, 20.09.2011 в 14:49.
|
|

20.09.2011, 17:18
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
нэээт
не так.
логика такая :
при первой загрузке страницы выводим таблицу в обычном порядке (пронумерованном - 1,2,3,4)
когда передвинули элемент (драг), отсылаем ajax-запрос в скрипту php, который изменяет порядок строк. как это делать - домашее задание *
при следующей загрузке страницы выводим строки таблицы в новом порядке ( 1,3,2,4, напрмиер)
__________
* можно запоминать состояние по-другому, используя более быстрые способы : куки, например.
а php уже прочитывает эти куки и выводит в определенном порядке строки таблицы
|
|
|
|