Сортировка элементов в Админ-панели

Для сортировки эелементов в Админ-панели выполнить следующие шаги.

  1. Добавить поле «serial_number» в таблицу

  2. Вставить следующий код в файле  админки  после начала php <?php. ПРОВЕРИТЬ таблицу!!! peugeot_finition
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    if (ISSET($_REQUEST['ajax'])){
        if (ISSET($_POST['post_ar'])){
             foreach ($_POST['post_ar'] as $n=>$id){
                 make_update_query("kiafr_model",ARRAY('serial_number'=>$n),"`id`='".$id."'");
             }
             print_r($_POST);
        }
        die();
    }

     

  3. Находим блок для вставки или редактирования записи в БД(он расположен после присваивания вставляемому массиву значений из формы, например: $insert_ar_peugeot_finition[‘tank_volume’]=(int)$_REQUEST[‘tank_volume’]; //tank_volume ). Начинается он из if (ISSET($_REQUEST[‘edit_id’])){ В блок else нужно вставить следующий код(обязательно проверив данные: название таблицы, поле в таблице и его значение).
    Если нужно выбрать все записи из таблицы, запрос должен выглядеть таким образом:

    1
    2
    
    $check=make_query('SELECT COUNT(*) as c FROM peugeot_finition', null, 1);
    if (ISSET($check['c'])) $insert_ar_peugeot_finition['serial_number']=$check['c'];

    Если же нужно выбрать записи по определённому параментру(например в таблице finition автомобилей выбрать finition принадлежащие к определённой модели) запрос будет выглядеть следующим образом:

    1
    2
    
    $check=make_query('SELECT COUNT(*) as c FROM peugeot_finition WHERE `range_id`=\''.$insert_ar_peugeot_finition['range_id'].'\'',null,1);
    if (ISSET($check['c'])) $insert_ar_peugeot_finition['serial_number']=$check['c'];

    Ваш код должен быть ПЕРЕД строкой вставки новой записи:            $result_peugeot_finition=make_insert_query(«peugeot_finition»,$insert_ar_peugeot_finition,TRUE);


  4. Перед таблицей получение массива данных, для вывода на странице нужно поправить код. Проверить название таблицы, поле и значение.
    Если нужно выбрать все записи из таблицы, запрос должен выглядеть таким образом:
    $result_peugeot_finition=make_select_query(‘peugeot_finition’,ARRAY(),’ORDER BY `serial_number`’);Если же нужно выбрать записи по определённому параментру(например в таблице finition автомобилей выбрать finition принадлежащие к определённой модели) запрос будет выглядеть следующим образом:
    $result_peugeot_finition=make_select_query(‘peugeot_finition’,ARRAY(‘range_id’=>$_REQUEST[‘range_id’]),’ORDER BY `serial_number`’);


  5. Добавить в тег <table inser_code_here> таблицы вывода результата следующий код: id=’diagnosis_list’

  6. В тег <tr> таблицы вывода записей базы Добавить следующий код,data-id=”$row_…[‘id’]” с id  елемента.
    На примере finition’а итоговый код должен выглядеть так:

    1
    
    echo '<tr data-id="'.$row_peugeot_finition['id'].'">';

  7. Вставить следующий код после закрывающего тега </table>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    
    <!-- jQuery UI CSS -->
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script>
    <script type="text/javascript">
     
    $(document).ready(function() {
    	//Helper function to keep table row from collapsing when being sorted
    	var fixHelperModified = function(e, tr) {
    		var $originals = tr.children();
    		var $helper = tr.clone();
    		$helper.children().each(function(index)
    		{
    		  $(this).width($originals.eq(index).width())
    		});
    		return $helper;
    	};
     
    	//Make diagnosis table sortable
    	$("#diagnosis_list tbody").sortable({
        	helper: fixHelperModified,
    		stop: function(event,ui) {renumber_table('#diagnosis_list')}
    	}).disableSelection();
    });
     
    //Renumber table rows
     
    function renumber_table(tableID) {
    	var sm=0;
    	var post_ar=[];
    	$(tableID + " tr").each(function() {
    		if ($(this).attr('data-id')!=undefined){
    			post_ar.push($(this).attr('data-id'));
    			sm++;
    		}
    		count = $(this).parent().children().index($(this)) + 1;
    		$(this).find('.priority').html(count);
    	});
    	$.post('',{ajax:1,post_ar:post_ar},function(data){
    		//alert(data);
    	});
    }
     
     
    </script>
     
    <style type="text/css">
    .ui-sortable tr {
    	cursor:pointer;
    }
     
    .ui-sortable tr:hover {
    	background:rgba(244,251,17,0.45);
    }
     
    </style>

Страница с комментариями

  1. peugeot_finitionif (ISSET($_REQUEST[‘ajax’])){if (ISSET($_POST[‘post_ar’])){
    foreach ($_POST[‘post_ar’] as $n=>$id){
    make_update_query(«peugeot_finition«,ARRAY(‘serial_number’=>$n),»`id`=’».$id.»‘»);
    }
    print_r($_POST);
    }
    die();
    }
    — разве вначале самом вместо «peugeot_finitionif » не должно быть «if»

  2. Пункт 3
    $check=make_query(‘SELECT COUNT(*) as c FROM peugeot_finition WHERE `range_id`=\».$insert_ar_peugeot_finition[‘range_id’].’\»,null,1);
    — Не очевидно какое значение нужно присваивать условию «WHERE».

  3. Пункт 6
    -можно уточнить местонахождение массива который нужно вставить в параметр data-id. Месторположение — 1 строка выше.

  4. WordPress -ий текстовый редактор изменяет скобки после чего код становится невалидным в notepad++
    нужно менять после копирования с вордпресса.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *