#javascript #jquery #html #ajax #jquery-ui
#javascript #jquery #HTML #ajax #jquery-пользовательский интерфейс
Вопрос:
Я использую http://johnny.github.io/jquery-sortable / чтобы отсортировать таблицу, у меня есть jQuery, работающий без проблем, но я не могу заставить сериализацию работать правильно. Мне было интересно, может ли кто-нибудь помочь и объяснить, что мне нужно сделать?
Итак, мой html.
<table class="table table-striped table-bordered sorted_table" id="positionstable">
<tbody>
<tr>
<th class="sectionname" colspan="1">Position</th>
</tr>
<tr data-id="2">
<td class=" ">Item 2</td>
</tr>
<tr data-id="1">
<td class=" ">Item 1</td>
</tr>
<tr data-id="3">
<td class=" ">Item 3</td>
</tr>
<tr data-id="4">
<td class=" ">Item 4</td>
</tr>
</tbody>
</table>
Мой jQuery:
$('.sorted_table').sortable({
containerSelector: 'table',
itemPath: '> tbody',
itemSelector: 'tr',
placeholder: '<tr class="placeholder"/>',
onDrop: function (item, container, _super) {
var dataToSend = $('.sorted_table').sortable("serialize").get();
console.log(dataToSend)
$.ajax({
url: "ajax_action.php",
type: "post",
data: dataToSend,
cache: false,
dataType: "json",
success: function () {}
});
//_super(item, container);
}
})
Вы также можете найти код по адресу http://jsfiddle.net/WJProctor/7GqQu /
Я хотел бы, чтобы массив идентификаторов был отправлен в мой ajax-скрипт.
Я с нетерпением жду от вас любой помощи и совета.
С уважением
Джеймс
Ответ №1:
Обычно сериализация работает с элементами формы и генерирует объекты JSON, используя имя каждого поля в качестве ключа и значение элемента в качестве его значения.
Вы можете легко сгенерировать сериализованный объект, просто просматривая строки таблицы, как
$('.sorted_table').sortable({
containerSelector: 'table',
itemPath: '> tbody',
itemSelector: 'tr',
placeholder: '<tr class="placeholder"/>',
onDrop: function (item, container, _super) {
var obj = jQuery('.sorted_table tr').map(function(){
return 'trvalue[]=' jQuery (this).attr("data-id");
}).get();
console.log(obj)
//do the ajax call
}
})