Datatable Mysql Tablo Select and List
datatable Dışında mysql tablolarını listeliyorum.
ordan seçtiğim tablonun atıyorum " sube "
içeriklerini listelemek istiyorum listeliyorumda
fakat söyle bir sorun çıkıyor bu sefer
bütün tabloların sıralama başlıkları aynı olmadığı için
<div class="col-md-6">
<section class="basic-select2">
<select class="select2 form-control" id='kategoriSira'>
<option value=''>-- Tabloya Göre Sırala--</option>
<?php
$kat= Func::Cop("SHOW TABLES");
$kat->execute();
$veri = $kat->fetchAll(PDO::FETCH_NUM);
foreach($veri as $row):
?>
<option value='<?php echo $row[0]; ?>'> <?php echo $row[0]; ?></option>
<?php endforeach; ?>
</select>
</section>
</div>
<div class="table-responsive">
<table id="copler-list" class="table table-striped table-bordered display" style="width: 100%">
<thead>
<tr>
<th>Adı</th>
<th>Adı</th>
<th>Adı</th>
<th>Adı</th>
<th>Adı</th>
<th>Adı</th>
<th>Adı</th>
</tr>
</thead>
</table>
</div>
şeklinde bu başlıklar altında listeliyorsam
bir başka tabloda listeleme farklı olması gerekiyor.
haliyle js taradında çekerken
var URI = window.location.origin;
var o = $("#copler-list").DataTable({
processing: true,
serverSide: true,
serverMethod: 'POST',
ajax: {
url: URI+"/CopData",
data: function(d){
var kategoriSec = $('#kategoriSira').val();
d.kategoriSira = kategoriSec;
},
},
columns: [
// {data: 'sil',},
{data: 'adi',orderable: true},
{data: "tel",orderable: true},
{data: "gsm",orderable: true},
{data: "fax",orderable: true},
{data: "mail",orderable: true},
{data: 'create_at',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: [
{
targets: ['noshort'],
orderable: false
},
],
displayLength: 10,
lengthMenu: [
[5, 10, 15, 20, 50, 100],
['5 Adet' , '10 Adet' , '15 Adet' , '20 Adet', '50 Adet', '100 Adet']
],
}); // Datatable Bitiş
$('#kategoriSira').change(function(){
o.draw();
});
gibi çektimi için aynı anda hangi js yi yükleyecek onu anlamadım
birde html tarafında başlıkları var tabi
genel olarak fikir istediğim
listeden tabloyu seçtiğimde datatable içerisinde o listenin
belirlediğim başlıklara göre düzenli şekilde çekmesi
hepsini tek sayfada yapmak istediğim ve iframe ile sayfa değiştirmek
istemediğim için.
işini görür mü bilmiyorum. Ama 1 hafta kadar önce şöyle bir çalışma yaptım. incelemeni tavsiye ederim.
Sıralamayı falan hep api-datatables.php tarafında halledebilir ve direkt bilgiyi ekrana basabilirsin.
api-datatables.php
<?php
include 'layouts/session.php';
// Reading value
$draw = $_POST['draw'];
$row = $_POST['start'];
$rowperpage = $_POST['length']; // Rows display per page
$columnIndex = $_POST['order'][0]['column']; // Column index
$columnName = $_POST['columns'][$columnIndex]['data']; // Column name
$columnSortOrder = $_POST['order'][0]['dir']; // asc or desc
$searchValue = $_POST['search']['value']; // Search value
$count = 1;
$searchArray = array();
$searchQuery = " ";
if($searchValue != ''){
$db->from('transactions')
->join('users', '%s.uid = %s.uid')
->where('pid', $searchValue, 'LIKE')
->or_where('users', $searchValue, 'LIKE')
->or_where('dtime', $searchValue, 'LIKE')
->all();
}
// Total number of records without filtering
$totalRecords = $db->from('transactions')->select('count(*) as total')->total();
// Total number of records with filtering
$totalRecordwithFilter = $db->from('transactions')->select('count(*) as total')
->join('users', '%s.uid = %s.uid')
->where('pid', $searchValue, 'LIKE')
->or_where('users', $searchValue, 'LIKE')->total();
// Fetch records
$empRecords = $db->from('transactions')
->join('users', '%s.uid = %s.uid')
->where('pid', $searchValue, 'LIKE')
->or_where('users', $searchValue, 'LIKE')
->orderby($columnName, $columnSortOrder)
->limit($row, $rowperpage)
->all();
$data = array();
foreach ($empRecords as $row) {
$data[] = array(
"username"=>'<a href="users-info.php?uid='.$row['uid'].'"><span style="font-size:14px;">'.$row['users'].' ('.$row['uid'].')',
"pid"=>$row['pid'],
"fromTo"=>$row['cointype'] .' - '. $row['tocointype'],
"fromToAmount"=>decimalZeroClear(number_format($row['fromamount'], 4, ".", "")) .' - '. decimalZeroClear(number_format($row['toamount'], 4, ".", "")),
"fromToPrice"=>decimalZeroClear(number_format($row['fromcoinprice'], 4, ".", "")) .' - '. decimalZeroClear(number_format($row['tocoinprice'], 4, ".", "")),
"processTime"=>$row['processtime'],
"action"=>' <a href="swap-edit.php?uid='.$row['id'].'" type="button" title="Swap Edit" class="btn btn-sm btn-warning waves-effect waves-light m-1"><i class="far fa-edit"></i></a>
<a href="swap-undo.php?pid='.$row['pid'].'" type="button" title="Swap Undo" class="btn btn-sm btn-danger waves-effect waves-light m-1"><i class="far fa-undo"></i></a>',
);
}
// Response
$response = array(
"draw" => intval($draw),
"iTotalRecords" => $totalRecords,
"iTotalDisplayRecords" => $totalRecordwithFilter,
"aaData" => $data
);
echo json_encode($response);
?>
datatable.js Tarafı
$('#transactionAjaxTable').DataTable({
'processing': true,
'serverSide': true,
'serverMethod': 'post',
'ajax': {
'url':'api-datatables.php',
/*'data': {
page: 'swap'
}*/
},
'columns': [
{ data: 'username' },
{ data: 'pid' },
{ data: 'fromTo' },
{ data: 'fromToAmount' },
{ data: 'fromToPrice' },
{ data: 'processTime' },
{ data: 'action' }
]
});
HTML Tarafı
<table id="withdrawalAjaxTable" class="table table-bordered dt-responsive nowrap w-100">
<thead>
<tr>
<th scope="col">User</th>
<th scope="col">Process ID</th>
<th scope="col">Symbol</th>
<th scope="col">Total Amount</th>
<th scope="col">Time</th>
<th scope="col">walletaddress</th>
<th scope="col">Check</th>
<th scope="col">Action</th>
</tr>
</thead>
</table>