v2.5.2
Giriş yap

Datatable içinde sortable kullanımı ?

acemi
468 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>  
abdullahx
806 gün önce

Keşke çalışsaydı benim yöntemle o kadar umutlu idim :) ekstra sortable a gerek kalmayacaktı. Aslında bütün data elimde olsa yaparım da siz nasıl istiyorsanız öyle yapın :)
Şimdi hatırladığım kadarıyla $(row).attr('id', 'data-'+dataid); burada data-id şeklinde verilmesinin sebebi sortable ın data- dan sonraki id kısmını otomatik olarak yakalaması idi. Ona göre mevcut sırasını anahtar => değer şeklinde sunucuya gönderiyordu.
Benim yaptığım mantık hepsini döngüye sokma şeklinde idi


foreach($_POST as $k => $v) {
    $update = $db->prepare("UPDATE table SET order = ? WHERE id = ?");
    $update->execute([$k, $v]);
}