v2.5.2
Giriş yap

Datatable içinde sortable kullanımı ?

acemi
452 defa görüntülendi

datatable içine verileri json olarak alıyorum
fakat bir türlü id değerine ulaşamadım.
bu konuda yardımcı olabilirmisiniz.?

var o = $("#anasayfa-list").DataTable({
	processing: true,
	serverSide: true,  
	serverMethod: 'POST',
	ajax: { 
		url: "/SayfaData/", 
	},  
	columns: [ 
        {data: 'id'}
	],
    rowReorder: {
		dataSrc: 'id',
		selector: 'tr'
	}, 
});
	-----------
$( "#anasayfa-list > tbody" ).sortable({
	delay: 150,
	stop: function() {
		var datav = new Array();
		$('#anasayfa-list > tbody').each(function() {
			datav.push($(this).attr("TRID"));
		});
		console.log(datav);
		alert(datav);
		update(datav);
	}
});

function update(data) {
	$.ajax({
		url:"/Sortable/",
		type:'post',
		data:{sira:data},
		success:function(){
			alert('güncel');
		}
	})
} 
<div class="table-responsive">
    <table id="anasayfa-list" class="table table-striped table-bordered display" style="width: 100%">
        <thead>
            <tr id="TRID" class="btn-info">
                <th class="noshort" title="Tümünü Seç">
                    <div class="form-check">
                        <input class="form-check-input" type="checkbox" value="" id="checkall"/>
                        <label class="form-check-label" for="checkall"></label>
                    </div>  
                </th>   
                <th>id</th> 
            </tr>
        </thead> 
    </table> 
</div>  
acemi
772 gün önce

@abdullahx

malesef bende çalışmadı gerekli değişiklikleri yaptığım halde

ben bu şekilde yaptım


var o = $("#anasayfa-list").DataTable({
	processing: true,
	serverSide: true,   
	ajax: { 
		url: "/SayfaData/", 
		data: function(d){         
			var kategoriSec = $('#kategoriSira').val(); 
			d.kategoriSira = kategoriSec; 
			var KatSec = $('#KatSira').val(); 
			d.KatSira = KatSec;  
		}
	},  
	columns: [
        {data: 'sil'},
        {data: 'id'},
        {data: 'modul_adi',orderable: true},
        {data: 'dosyaadi',orderable: true},  
        {data: 'sira',orderable: true},   
        {data: 'durum',orderable: true},
        {data: 'islem', responsivePriority: -1, orderable: false}
	],
	language:{url:"//cdn.datatables.net/plug-ins/1.10.12/i18n/Turkish.json"}, 
	columnDefs: [ 
        {  "className": "sec", targets: [ 1,2 ] },
		{
			targets: ['noshort'],
			orderable: false
		},
		{
			targets: -1,
			title: 'İşlemler',
			render: function(data, type, row) { 
				var html = '';
					$.each(row.action, function(key, action){
						if(action.duzenle.duzendurum === "true"){
							html+= action.duzenle.link;
 						}
						if(action.silme.sil === "true"){
							html+= action.silme.link;
						} 
						if(action.copeat.durum === "true"){
							html+= action.copeat.link;
						} 
					})
					return html; 
			},
		}, 
	],
	order: [[3, "asc"]], 
	displayLength: 10,
	lengthMenu: [
		[5, 10, 15, 20, 50, 100, 2],
		['5 Adet' , '10 Adet' , '15 Adet' , '20 Adet', '50 Adet', '100 Adet', 'Tümü']
	],
	dom: 'Blrtip',
	buttons: [ 
			{extend:'copy'},{extend:'csv'},{extend:'excel'},{extend:'pdf'},{extend:'print'}, 
	], 
    rowReorder: {
		dataSrc: 'id',
		selector: 'tr'
	}, 
	rowCallback: function (row, data) { 
		var dataid = data.id;    
		$(row).attr('id', 'data-'+dataid);
 
    }, 

});	

$(function() {
	$("#sortable").sortable({ 
		revert: true,
		cursor: 'move',
		handle: ".sec",
		stop: function(event, ui){
			var data = $(this).sortable('serialize');
			console.log(data);
			$.ajax({
				type: "POST",
				dataType: "json",
				data: data,
				url:"/SortUpdate/HomePage/",
				success: function(response){
					if(response.Status == "ok"){ 
					}
					if(response.Status == "error"){ 
					}
				}				
			});
		}
	});
	$("#sortable").disableSelection(); 
});

verileride bu şekilde alıyorum.

Array
(
    [item] => Array
        (
            [0] => 10
            [1] => 7
            [2] => 13
            [3] => 4
            [4] => 8
            [5] => 14
            [6] => 6
            [7] => 5
            [8] => 15
            [9] => 3
        ) 
)
// data[]=7&data[]=13&data[]=4&data[]=10&data[]=8&data[]=14&data[]=6&data[]=5&data[]=15&data[]=3

burda kafamın almadığı yer ise sıralama değişiyor veriler de ona göre geliyor bunu php tarafında nasıl harmanlayacağım.