v2.5.2
Giriş yap

Datatable Mysql Tablo Select and List

aydinkeskin
504 defa görüntülendi

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.

sefaaydin
707 gün önce

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>