Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Sayfalama hakkında

Konu, 'PHP' kısmında Adem GENÇ tarafından paylaşıldı.

  1. Adem GENÇ

    Adem GENÇ Daimi Üye

    Kayıt:
    11 Kasım 2012
    Mesajlar:
    835
    Beğenilen Mesajlar:
    5
    Meslek:
    Bina Elektronik Sistemleri
    Şehir:
    İstanbul
    Merhaba,

    PHP ile sayfalama yaptım
    Veritabanından veri çekip tablo oluşturuyorum bu tabloda veri veya veri satırları siliyorum, yada bir satırın verilerini düzenliyorum

    Sorum şu:
    örnek 5. sayfada bir şey sildiğim de yine 5. sayfada kalsın,
    Örnek 3. sayfadaki bir satırın veriyi düzenlediğim de yine 3. sayfada kalsın
    Örnek bir sayfada 25 tane göster seçtiğimde ben değiştirene kadar veya sayfayı kapatana kadar bir sayfada 25 tane olsun

    Yani sildiğimde düzenlediğimde her zaman son durum da kalsın

    Bunun mantığı nedir? nasıl yapmak gerekir?
     
  2. sahin26

    sahin26 Yeni Üye

    Kayıt:
    27 Şubat 2017
    Mesajlar:
    1
    Beğenilen Mesajlar:
    0
    Şehir:
    eskişehir
    eskişehir haber için aynı soruyu bende arıyorum. bulursanız haberdar ederseniz sevinirim.
     
  3. veritabani

    veritabani Üye

    Kayıt:
    29 Ağustos 2008
    Mesajlar:
    110
    Beğenilen Mesajlar:
    1
    Ya kontrolleri session ile kontrol edeceksiniz geri dönüşleri de $_SERVER['REQUEST_URI'] ile yönlendirilen sayfalardan geri döndürüleceksiniz yada jQuery-Ajax ile veriyi ekrana çektireceksiniz ama her halükar da neyi işaretlemişsen yapmış isem etmiş isem aynı kalsın diyorsanız bu durum da sessionlar ile çalışacaksınız
     
    dinlex bunu beğendi.
  4. Adem GENÇ

    Adem GENÇ Daimi Üye

    Kayıt:
    11 Kasım 2012
    Mesajlar:
    835
    Beğenilen Mesajlar:
    5
    Meslek:
    Bina Elektronik Sistemleri
    Şehir:
    İstanbul
    O kadar yapacak bilgiye sahip değiliz
    Sayfalama kodları piyasada çok var ama bu konu hakkında bir şey bulamadım bilen var mı?
     
  5. Adem GENÇ

    Adem GENÇ Daimi Üye

    Kayıt:
    11 Kasım 2012
    Mesajlar:
    835
    Beğenilen Mesajlar:
    5
    Meslek:
    Bina Elektronik Sistemleri
    Şehir:
    İstanbul
    O kadar yapacak bilgiye sahip değiliz
    Sayfalama kodları piyasada çok var ama bu konu hakkında bir şey bulamadım bilen var mı?
     
  6. dinlex

    dinlex Üye

    Kayıt:
    23 Aralık 2016
    Mesajlar:
    218
    Beğenilen Mesajlar:
    55
    Şehir:
    Hatay
    Silme işleminde sayfanın yenilenmemesi için ajax (javascript) kullanman gerek. Ben de zamanında çok aradım, net bir bilgi bulamadım, 2 haftamı aldı sağdan soldan yardım alarak kısa bir kod yapmak. Javascript bilgim sıfır çünkü.

    Aşağıda yaptığım ve sorunsuz çalışan javascript fonksiyonu kendine göre uyarlayıp kullanabilirsin. Frmtr.com'da bunu yapmama yardımcı olan ve ismini şuan hatırlayamadığım arkadaşa teşekkürlerimi sunuyorum her ne kadar görmeyecek olsa da.
    HTML:
    $(function() {
    $(".konusil").click(function(){
    var element = $(this);
    
    //Silinecek linkin id sini alalım
    var konusil = element.attr("id");
    
    //delete.php ye göndermek için bir url yapısı oluşturalım
    var info = 'id=' + konusil;
    
    // Confirm kutusu (ok / cancel) Ok Döndürürse
    if(confirm("Silmek İstediğinizden Emin misiniz ?")) {
    
    // ajax fonksiyonumuzu yazalım
    $.ajax({
       type: "GET",
       url: "/index.php?git=sil",  //bu adrese yukarıda id'sini aldığımız içeriğin id'sini yollayacak ve orada silinecek.
       data: info,
       success: function(){
       }
    });     // ajax fonksiyonumuz çalıştıktan sonra silinen divi sayfadan kaldıralım..
             $(this).parents(".konu").animate({ backgroundColor: "#000" }, "fast")
            .animate({ opacity: "hide" }, "slow");
            }
        return false;
    });
    });
    Bu da sitedeki html kodu;
    HTML:
    <div class="konu">
    <a href="#" id="253" class="konusil">sil</a>
    </div>
     
  7. dinlex

    dinlex Üye

    Kayıt:
    23 Aralık 2016
    Mesajlar:
    218
    Beğenilen Mesajlar:
    55
    Şehir:
    Hatay
    Kısaca anlatmak gerekirse, html kodunda görülen "sil" linkine tıklayınca üstteki javascript fonksiyonu çalışıyor ve id="253" kısmını alıyor. siteadı.com/index.php?git=sil linkinin devamına ekliyor ve siteadı.com/index.php?git=sil&id=253 adresine istek yolluyor ve sildiriyor. Tabi aynı zamanda ekradaki <div class="konu"> divi de kaldırılıyor ve sayfa yenilenmiyor.
     
  8. dinlex

    dinlex Üye

    Kayıt:
    23 Aralık 2016
    Mesajlar:
    218
    Beğenilen Mesajlar:
    55
    Şehir:
    Hatay
    Sayfalamaya gelince, hali hazırda bir sayfalama yapılmış ve düzgün çalışıyor, sadece listeleme sayısının anlık değişiminden kaynaklı bir sıkıntı var sanırım. Sayfalama kodunda biraz değişiklik yapıp $_SESSION["sayfalama"] var mı diye session kontrolü yapılacak, eğer varsa sessiondaki değer alınacak ve ona göre listeleme yapılacak en başta, eğer yoksa da öntanımlı değer kadar listelenecek yine. İçerikler listelenince sayfanın üstüne bir select ekleyip istenilen sayfa sayıları yazılacak örn 25, 50, 100 vs. Burdan biri seçildiğinde hemen $_SESSION["sayfalama"]ya atanacak ve sayfa yenilenince bundan sonra tarayıcı kapatılana kadar o değer kadar içerik listelenir. Benim bilgim böyle, zaten @veritabani da kısaca böyle bahsetmiş sanırım.
     
  9. Adem GENÇ

    Adem GENÇ Daimi Üye

    Kayıt:
    11 Kasım 2012
    Mesajlar:
    835
    Beğenilen Mesajlar:
    5
    Meslek:
    Bina Elektronik Sistemleri
    Şehir:
    İstanbul
    Sayfamda div yok tablo var bunları div e çevir baya uğraştırıcı

    Bir sayfadaki tüm veriler silindiğinde böyle oluyordu
    [​IMG]
    page=3 olarak yeniden link göndermek gerekiyordu aşağıdakilerle yapmaya çalıştım


    Ama ben şöyle bir şey yaptım tam bitmedi ama sonuç alıyorum galiba

    Bu sayfalama bir yerde bulmuştum kendime uyarladım
    PHP:
    $haftadizi=array(1,2,3,4,5,6,7);
      
    $top_sayfa ceil(
                       
    intval(
                         
    current(
                           
    $this->db_connection->query("SELECT COUNT(*) FROM zamanlanmisgorev WHERE dosya_adi LIKE '%".$_REQUEST['ara']."%' || gorev_adi LIKE '%".$_REQUEST['ara']."%'")->fetch_row()
                         )
                       )
                     );

    $page = isset($_REQUEST['page']) ? (int) $_REQUEST['page'] : 1;
    $limit = isset($_REQUEST['sayfada']) ? (int) $_REQUEST['sayfada'] : 10;
    $pageurl  $_SERVER['PHP_SELF']; //Sayfa Bağlantısı
    $sayfada = ($page 1) * $limit;

    $page_url $pageurl."?sayfada=".$limit;
    //echo $_SERVER['REQUEST_URI'];

    function Sayfala($top_sayfa,$page,$limit,$page_url)
    {
        
    // Sayfalama Şeridimiz
        
    if ($top_sayfa $limit) :
        echo 
    '<div id="sayfala"><span class="say_sabit">Sayfalar</span>';
        
    $x 3// Aktif sayfadan önceki/sonraki sayfa gösterim sayisi
        
    $lastP ceil($top_sayfa $limit);
        
    // sayfa 1'i yazdir
        
    if ($page==1){
            echo 
    '<span class="say_aktif">1</span>';
        }else{
            echo 
    '<a class="say_a" href="'.$page_url.'">1</a>';
        }
        
    // "..." veya direkt 2
        
    if ($page-$x>2){
            echo 
    '<span class="say_b">...</span>';
            
    $i $page-$x;
        }else{
            
    $i 2;
        }
        
    // +/- $x sayfalari yazdir
        
    for ($i$i<=$page+$x$i++){
            if (
    $i==$page)
            echo 
    '<span class="say_aktif">'.$i.'</span>';
            else
            echo 
    '<a class="say_a" href="'.$page_url.'&page='.$i.'">'.$i.'</a>';
            if (
    $i==$lastP)
            break;
        }
                                                                                                                       
        
    // "..." veya son sayfa
        
    if ($page+$x<$lastP-1){
            echo 
    '<span class="say_b">...</span>';

            echo 
    '<a class="say_a" href="'.$page_url.'&page='.$lastP.'">'.$lastP.'</a>';
        }elseif (
    $page+$x==$lastP-1){
            echo 
    '<a class="say_a" href="'.$page_url.'&page='.$lastP.'">'.$lastP.'</a>';
        }
        echo 
    '</div>';//#sayfala
        
    endif;
    }
    Buda sayfanın son duruma göre yeniden URL oluşturuyorum
    Sil ve düzenle için
    PHP:
    $lastP ceil($top_sayfa $limit);

    if(isset(
    $_POST['sayfada'])){
    $sayfadaa "sayfada=".$_POST['sayfada'];
    }
    if(isset(
    $_GET['sayfada'])){
    $sayfadaa "sayfada=".$_GET['sayfada'];
    }
    if(isset(
    $_GET['page'])){
    $pagee "&page=".$_GET['page'];
    }
    if(isset(
    $_GET['edit'])){
    $editt "&edit=".$_GET['edit'];
    }
    if(isset(
    $_GET['sayfada']) OR isset($_GET['page']) OR isset($_GET['edit']) OR isset($_POST['sayfada'])){
    $yeni_link $_SERVER['SCRIPT_NAME']."?".$sayfadaa.$pagee.$editt;
    $yeni_edit $_SERVER['SCRIPT_NAME']."?".$sayfadaa.$pagee;
    }else{
    $yeni_link $_SERVER['SCRIPT_NAME'];
    $yeni_edit $_SERVER['SCRIPT_NAME'];
    }
    if( 
    $lastP != '0' AND $lastP $_GET['page'] ){
    $yenileme_linki str_replace("page=".$_GET['page'], "page=".$lastP$yeni_link);
    }
    if( 
    $lastP == '0' AND $lastP $_GET['page'] ){
    $yenileme_linki $_SERVER['SCRIPT_NAME'];
    }
    $yeni_link sayfa sildiğimde kullanıyorum
    $yeni_edit ise satırdaki veriyi düzenlerken yoksa url de edit=1&edit=5&edit=23 uzuyor peş peş düzenle ye basarsan bu yüzden edit=12 değeri düzenleye bastığında alıyor bu sorunu da böyle aştım

    $yenileme_linki ise url den gelen sayfa sayısı ile $lastP toplam sayfası küçük ise url deki page=5 yerine page=4 ile değiştiriyor ve aşağıdaki kod ile sayfa yenileniyor
    PHP:
    <?php
    if(isset($yenileme_linki)){
    ?>
    <script>
    $(function(){
    window.location.href='<?=$yenileme_linki;?>';
    })
    </script>
    <?php
    }
    Sayfanın başında ajax ile silme işlemi yapıyorum ajax silindi dediğinde Tamam diyorum sayfa yenileniyor ve eğer url deki sayfa sayısı ile toplam sayfa sayısı küçük ise yukarıdaki kod sayfa sonunda çalıyor sayfa yenileniyor, küçük değil ise sorun yok zaten.

    Düzenle butonu içinde şöyle bir şey yaptım
    PHP:
      $sonuc substr($yeni_edit, -3);
      if(
    $sonuc == 'php'){
      
    $ek '?';
      }else{
      
    $ek $yeni_edit."&";
      }
    href="<?=$ek?>edit=<?=$row->id?>#a">
    Bunu da böyle yaptım

    Böyle birşeyler yapmaya çalıştım tabi bizim acemi hobi işi
     
    Son düzenleme: 15 Mart 2017