Новосибирск +7(983)

По всем вопросам :

Телеграм : @radgura

Динамическая сортировка строк,ячеек с использование jQuery().sorttable();

Заказать
Joomla 3xС

Стоимость 300


@radgura.ru
Адриена Лежена
63089
Новосибирск
Адриена Лежена
+7(983)
3067856
Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

Статьи

Вы можете Заказать 300руб. RUB

Вы можете создать динамический массив элементов или таблицу, где изменение элементов будет сохраняться в БД.

Для работы вам понадобиться библиотека jQuery не ниже 1.9 и jquery-ui.min.js

На примере таблицы, где необходимо перемещать строки(вверх-вниз) и запоминать их позицию(ordering)

<table >
<tbody class="container">
<tr id="OrdNum_1">
<td>
<input type="hidden" id="imageindex_0" value="1">
<a class="btn"><i class="icon-move"></i></a>
</td>
<td>
....
</td>
</tr>
<tr id="OrdNum_2">
<td>
<input type="hidden" id="imageindex_1" value="2">
<a class="btn"><i class="icon-move"></i></a>
</td>
<td>
....
</td>
</tr>
</tbody>
</table>

Алгоритм работы:

  • 1.Пользователь перетаскивает строку, зажав элемент <i class="icon-move"></i>
  • 2.После завершения, скрипт анализирует позицию с которой был взял элемент и позицию на которую он перемещен, далее по элементам <input type="hidden" id="imageindex_1" value="2"> в атрибуте value получаем ID записи
  • 3.Делаем запрос в БД на изменение позиции(ordering)

Скрипт выполняющий поиск ID старой и новой позиции:

jQuery(document).ready(function() {
jQuery('.container').sortable({
group: 'no-drop',
opacity: 0.8,
handle: 'i.icon-move',
start: function(e, ui) {jQuery(this).attr('data-previndex', ui.item.index());},
update: function(e, ui) {

var newIndex = ui.item.index();
var oldIndex = jQuery(this).attr('data-previndex');
var target_id=document.getElementById('imageindex_'+newIndex).value;
var self_id=document.getElementById('imageindex_'+oldIndex).value;
var myData = 'changeimageord='+target_id+'&sid='+self_id;
jQuery.ajax({
type: "POST",
url: document.getElementById('siteurl').value+"index.php?option=com_rad_sale",
dataType:"text",
data:myData,
success:function(response){},
error:function (xhr, ajaxOptions, thrownError){alert(thrownError);}
});

jQuery(this).removeAttr('data-previndex');
},
onDragStart: function ($item, container, _super) {if(!container.options.drop) $item.clone().insertAfter($item);_super($item, container);},
});
});

Обработка aJax запроса:

if (isset($_POST['changeord']) and strlen($_POST['changeord']))
{
$target_id=trim($_POST['target_id']);
$self_id=trim($_POST['self_id']);
$db = JFactory::getDbo();
$db->setquery("select ordering from #__table where id='".$target_id."'");$target_id_ord=$db->loadresult();
$db->setquery("select ordering from #__table where id='".$self_id."'");$self_id_ord=$db->loadresult();
$db->setquery("update #__table set ordering='".$self_id_ord."' where id='".$target_id."'");$db->execute();
$db->setquery("update #__table set ordering='".$target_id_ord."' where id='".$self_id."'");$db->execute();
exit();
}

 

Комментарии (0)

Здесь ещё нет оставленных комментариев.

Оставьте свой комментарий

  1. Добавление комментария от гостя.
Вложения (0 / 3)
Share Your Location

Как с нами связаться

По всем вопросам пишите  

Телеграм: @radgura

OnLine заказ

Отправить сообщение

Нажимая на кнопку «Отправить сообщение», я соглашаюсь:
* с условиями публичной оферты
* обработку моих персональных данных


RAD компоненты

Please publish modules in offcanvas position.