У меня есть таблица с данными, и мне нужно сделать ее сортируемой. После сортировки каждой строке необходимо получить изменения в ее идентификаторе tr, входном идентификаторе и атрибутах имени.
Здесь я сделал это только для атрибута name
. Но все же при сохранении данных эти строки не в порядке, если выполняется более 1 сортировки. Возможно, я что-то упустил.
И есть ли способ изменить все эти атрибуты одновременно?
$( "#languages > tbody" ).sortable({
items: 'tr',
update: function(event, ui) {
var result = $('#languages > tbody').sortable('toArray');
for(i=0; i<result.length; i++) {
$('#Setting3Value'+i+'Language').attr('name', 'data[Setting][3][value]['+result[i]+'][language]');
}
for(i=0; i<result.length; i++) {
$('#'+i).attr('id', result[i]);
$('#Setting3Value'+i+'Language').attr('id', 'Setting3Value'+result[i]+'Language');
}
}
});
И HTML:
<table id="languages">
<tbody>
<tr id="0">
<td><div class="input text"><input type="text" id="Setting3Value0Language" rel="" value="English" name="data[Setting][3][value][0][language]"/></div></td>
<td><div class="input text"><input type="text" id="Setting3Value0Alias" rel="" value="eng" name="data[Setting][3][value][0][alias]"/></div></td>
<td/>
</tr>
<tr id="1">
<td><div class="input text"><input type="text" id="Setting3Value3Language" rel="" value="French" name="data[Setting][3][value][1][language]"/></div></td>
<td><div class="input text"><input type="text" id="Setting3Value1Alias" rel="" value="fre" name="data[Setting][3][value][1][alias]"/></div></td>
<td/>
</tr>
<!-- and so on ... -->
</tbody>
</table>
Также возможно установить для id
строк таблицы значение name-1
, например.
РЕДАКТИРОВАТЬ: Мне удалось сделать то, что мне нужно, используя временные значения для id
, потому что это становилось довольно грязным. Я не думаю, что это лучшее решение, так что с нетерпением жду. Также каждый вход должен быть в списке.
Вот моя функция обновления:
for(i=0; i<result.length; i++) {
$('#'+result[i]).attr('id', 'temp-'+i);
$('#Setting3Value'+result[i]+'Language').attr('id', 'temp-Setting3Value'+i+'Language');
$('#Setting3Value'+result[i]+'Alias').attr('id', 'temp-Setting3Value'+i+'Alias');
}
for(i=0; i<result.length; i++) {
$('#temp-'+i).attr('id', i);
$('#temp-Setting3Value'+i+'Language').attr('id', 'Setting3Value'+i+'Language');
$('#temp-Setting3Value'+i+'Alias').attr('id', 'Setting3Value'+i+'Alias');
$('#Setting3Value'+i+'Language').attr('name', 'data[Setting][3][value]['+i+'][language]');
$('#Setting3Value'+i+'Alias').attr('name', 'data[Setting][3][value]['+i+'][alias]');
}