folder Tahribat.com Forumları
linefolder Html - CSS - XML - JavaScript - Ajax
linefolder Datatable İle Sayfalama Yapma Problemi.



Datatable İle Sayfalama Yapma Problemi.

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Diffstorm
    Diffstorm's avatar
    Kayıt Tarihi: 05/Temmuz/2008
    Erkek

    Merhaba,

    jquery tarafında 

    $('#results').DataTable({
        /*     var results="<?php echo pagination($statement,$limit,$page,$current_url);?>",
               results{
                statement:"next",
                limit:"Last",
                page:"first",
                current_url:"last"
               }, */
               pagingType: 'full_numbers',
                language: { 
                  info: "_TOTAL_ record _START_ - _END_ showing",
                  infoEmpty:      "No record",
                  loadingRecords: "Records loading",
                  zeroRecords: "Table is empty",
                  search: "Quick Search:",
                  infoFiltered: "(total _PAGES_ record filtered)",
                buttons: {
                    print: "Print",
                    excel: "Excel",
                  },
                oPaginate: {
                  sFirst: "First",
                  sLast: "Last",
                  sNext: "Next",
                  sPrevious: "Previous",
                },
              },
                 dom: 'Qfrtip',
              buttons: [
                  'excel', 'print'
              ],
              responsive: true,
      

    kullandığım kod:

    bu da sql tarafı 

    $total_sql = "SELECT sum(cards_given) as c_give, sum(cards_printed) as c_print, sum(cards_returned) as c_ret, sum(cards_faulty) as c_fault
    						FROM cs_daily d
                            JOIN cc_type t
                            ON d.id_cc_type = t.id_cc_type
                            WHERE {$q_where} ORDER BY date DESC, name ASC";
    $total_result = mysql_query($total_sql, $db) or die(mysql_error());
    //----------------------------------------------------------------------------------------
                $statement = "`cs_daily` d JOIN cc_type t
                            ON d.id_cc_type = t.id_cc_type WHERE {$q_where}";
    $result1 = mysql_query($sql, $db) or die(mysql_error());
    $current_url =  curPageURL();
    $current_url .="&";
      }
        else {
        $query = "SELECT id_daily, name, date, type, cards_given, cards_printed, cards_returned, cards_faulty
    						FROM cs_daily d
                            JOIN cc_type t
                            ON d.id_cc_type = t.id_cc_type
                            ORDER BY date DESC,  name ASC
                            LIMIT {$startpoint} , {$limit}";

    şu üç satırda sayfa başına kaç kayıt göstereceğini belirliyor:

            $page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
            $limit = 20;
            $startpoint = ($page * $limit) - $limit;
            

    tablo $limit değişkeninde belirlenen sayı kadar, kayıt gösteriyor.

    ve son olarakta sayfalama yapmak için ise şu kod kullanılmış.

    <?php echo pagination($statement,$limit,$page,$current_url);?>

    ben bunu jquery tarafına nasıl uyarlayabilirim acaba ?

    Yardımlarınız için şimdiden teşekkür ederim.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo

    datatable sitesinde direkt örnek php kodu falan vardı, onu kopyalayıp kendi senaryona uyarlayabilirsin direkt


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek

    datatable zaten kendisi sayfalama yapıyor. Tüm veriyi sayfaya göndermeniz yeterli olur. 


    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Diffstorm
    Diffstorm's avatar
    Kayıt Tarihi: 05/Temmuz/2008
    Erkek
    biri bunu yazdı

    datatable zaten kendisi sayfalama yapıyor. Tüm veriyi sayfaya göndermeniz yeterli olur. 

    Evet doğru hocam, fakat tüm veriyi gönderdiğim zaman bütün veriyi db den fetch etmesi gerekeyior, buda haliyle sayfanın yüklünmesi çok uzun sürüyor. Tam olarak yapmak istediğim örneğin sayfa numarasını tıkladığım zaman o sayfada belirlenen sayı kadar veri çekmesi.

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Diffstorm
    Diffstorm's avatar
    Kayıt Tarihi: 05/Temmuz/2008
    Erkek
    yolbulucu bunu yazdı

    datatable sitesinde direkt örnek php kodu falan vardı, onu kopyalayıp kendi senaryona uyarlayabilirsin direkt

    Hocam baktımda, bende olan php de bayağı bir değişiklik yapma anlamına geliyor. Aslına bakarsak yapmak istediğim şunu jquery ye uyarlama: 

    <?php echo pagination($statement,$limit,$page,$current_url);?>
     

     

     

    Diffstorm tarafından 13/Kas/22 22:30 tarihinde düzenlenmiştir
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    whopper
    whopper's avatar
    Kayıt Tarihi: 26/Haziran/2008
    Erkek
    biri bunu yazdı

    datatable zaten kendisi sayfalama yapıyor. Tüm veriyi sayfaya göndermeniz yeterli olur. 

    oyle sacma sey mi olur. pagination olayi zaten sunucundan sayili veri getirip requestlerdeki, dolayisiyla sunucudaki yuku azaltmak. requestle birlikte gelen index, offset bilgilerini db sorgunda kullanman lazim.

     

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manglerman
    manglerman's avatar
    Kayıt Tarihi: 30/Aralık/2003
    Erkek
    whopper bunu yazdı
    biri bunu yazdı

    datatable zaten kendisi sayfalama yapıyor. Tüm veriyi sayfaya göndermeniz yeterli olur. 

    oyle sacma sey mi olur. pagination olayi zaten sunucundan sayili veri getirip requestlerdeki, dolayisiyla sunucudaki yuku azaltmak. requestle birlikte gelen index, offset bilgilerini db sorgunda kullanman lazim.

     

    çok sert girme hocam :) normalde evet öyle ama mantıken 150-200 den fazla kaydın kesinlikle girilmeyeceği ekranlar için ben de benzer mantık uyguluyorum. getall ile hepsini çekip basıyorum frontend sayfalamasını yapıyor rahat rahat.


    türk kızlarından sabun yapalım, rus kızları elini yıkasın.:)
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Diffstorm
    Diffstorm's avatar
    Kayıt Tarihi: 05/Temmuz/2008
    Erkek
    whopper bunu yazdı

    oyle sacma sey mi olur. pagination olayi zaten sunucundan sayili veri getirip requestlerdeki, dolayisiyla sunucudaki yuku azaltmak. requestle birlikte gelen index, offset bilgilerini db sorgunda kullanman lazim.

     

    Hocam zaten hali hazirda, sayfalarin hesaplandigi eski bir php sayfasi var. Fakat onu datatable ile kullanamiyorum.

     

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Diffstorm
    Diffstorm's avatar
    Kayıt Tarihi: 05/Temmuz/2008
    Erkek
    manglerman bunu yazdı
    whopper bunu yazdı
    biri bunu yazdı

    datatable zaten kendisi sayfalama yapıyor. Tüm veriyi sayfaya göndermeniz yeterli olur. 

    oyle sacma sey mi olur. pagination olayi zaten sunucundan sayili veri getirip requestlerdeki, dolayisiyla sunucudaki yuku azaltmak. requestle birlikte gelen index, offset bilgilerini db sorgunda kullanman lazim.

     

    çok sert girme hocam :) normalde evet öyle ama mantıken 150-200 den fazla kaydın kesinlikle girilmeyeceği ekranlar için ben de benzer mantık uyguluyorum. getall ile hepsini çekip basıyorum frontend sayfalamasını yapıyor rahat rahat.

    Hocam peki geniş tablolar için bunu kullanamayiz  mi ? Yardım  edebileceklere  olmaz ise maddi yardım edebilirim.

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    prokto
    prokto's avatar
    Kayıt Tarihi: 03/Ocak/2006
    Erkek

    1- get isteği alınca json formatında sadece verileri sana basan bir endpoint ayarla
    2- datatable ajax ı incele. verileri o şekilde dinamik olarak çekebilirsin.


    Bu imza çok eskidi artık...
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo
    Diffstorm bunu yazdı
    manglerman bunu yazdı
    whopper bunu yazdı
    biri bunu yazdı

    datatable zaten kendisi sayfalama yapıyor. Tüm veriyi sayfaya göndermeniz yeterli olur. 

    oyle sacma sey mi olur. pagination olayi zaten sunucundan sayili veri getirip requestlerdeki, dolayisiyla sunucudaki yuku azaltmak. requestle birlikte gelen index, offset bilgilerini db sorgunda kullanman lazim.

     

    çok sert girme hocam :) normalde evet öyle ama mantıken 150-200 den fazla kaydın kesinlikle girilmeyeceği ekranlar için ben de benzer mantık uyguluyorum. getall ile hepsini çekip basıyorum frontend sayfalamasını yapıyor rahat rahat.

    Hocam peki geniş tablolar için bunu kullanamayiz  mi ? Yardım  edebileceklere  olmaz ise maddi yardım edebilirim.

    https://datatables.net/examples/server_side/simple.html

    kopyala yapıştır burdan baby bak altta php kodu da var


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
Toplam Hit: 2741 Toplam Mesaj: 14
php jquery datatable tablo