Некоторое время назад я пересмотрел старый проект. Клиент попросил меня изменить порядок заполнения анкеты в соответствии с должностью врача. Потому что проект клиента-это система персонала больницы, учитывая, что во всей больнице тысячи людей, если один за другим в соответствии с требованиями заказчика устанет моя талия.. К счастью, я думаю об использовании плагина jquery Ui для достижения этой функции. Но плагин jQueryUI может выполнять сортировку только на текущей странице, и страница обновляется и восстанавливается в исходное состояние. Поэтому я изучил, как перетащить сортировку и навсегда сохранить ее в базе данных. Я делал это в течение часа и сделал это. Вот запись. Если у вас есть идея получше, пожалуйста, не стесняйтесь преподавать. Во-первых, скачайте плагин jquery Ui, выполните поиск в Интернете, пропустите прокат. Когда загрузка будет завершена, откроется страница. Добавьте к нему строку кода: <тип сценария=”текст/javascript “> <скрипт>
$(document).ready(function(){ $("#sort tbody").sortable(); });
Обратите внимание, что селектор должен выбрать основную часть таблицы Метод сортировки может добавить множество параметров конфигурации, и вы можете ознакомиться с документацией этого плагина в частности. Точно так же существует множество онлайн-поисков, таких как учебные пособия для начинающих птиц. Теперь он просто реализует сортировку на текущей странице, но база данных все та же. Ниже приведен мой способ сохранить сортировку в базе данных. Ранее моя сортировка по умолчанию выполнялась в обратном порядке в соответствии со значением идентификатора таблицы данных. Теперь я могу добавить поле сортировки или поле XX в таблицу данных для представления отсортированного числа. После завершения каждого перетаскивания идентификатор каждой отсортированной строки передается в фоновом режиме с помощью Ajax с помощью функции обновления, встроенной в плагин. После получения в фоновом режиме контроллера перейдите и измените значение сортировки данных в первой строке на значение ключа + 1. Например, значение идентификатора данных в первой строке равно 8, идентификатор данных во второй строке равен 6, а идентификатор данных в третьей строке равен 2. Когда значение идентификатора данных в первой строке равно
$(“#сортировка тела”).сортируется({
update:function () { var idArr = []; $("input [name='id']). each (function () {// traverses the ID value of each row IdArr. push ($(this). val ();// Push the completed data ID into the array in turn }) $.ajax({ type: "POST", dataType: "json", url: "__URL__/staff/pinyong", data:{idArr:idArr}, success:function (data) { layer.msg(data['msg'],{icon:1,time:2000}); }, error:function (request) { console.log(request); } }); } });
Это старый проект, написанный TP3. Поэтому я не использую TP5. TP5 просто нужно изменить URL-адрес на {url (…)}.
Исходный код: (TP3 также написан, TP5 до тех пор, пока метод модели не примет табличную модель, а затем не изменит метод сохранения) публичная функция pinyong(){
if (IS_POST) { // If the front-end post mode transmits the array, the back-end must specify the receiving format in order to receive, otherwise it will report errors. $arr = I('idArr/a'); foreach ($arr as $k => $v) { M('pinyong')->where('id','eq',$v)->save(['sort'=>$k + 1]); } $this - > success ('sort success'); } else { $this->display(); } } In this way, each foreground drag sort triggers the update function, and then the ID value of the new sort will be passed to the background with ajax. After the background receives, the sort value can be modified in order. In this way, a simple function is realized. Welcome to pat the brick.