Çözüldü Verinin tamamını tek seferde nasıl görebiliriz?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

DaggeroN

Hectopat
Katılım
29 Kasım 2020
Mesajlar
106
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Merhaba, bir web sitesindeki 2.165 adet veriyi yalnızca 100 - 100 olarak sıralayabiliyoruz. Ancak ben 2.165 adet verinin tek seferde görüntülenebilmesini ve sıralanmasını istiyorum.

Bunu konsol üzerinden yapabilir miyiz?

Web site: Yargitay Karar Arama
 

Dosya Ekleri

  • Ekran görüntüsü 2023-05-27 142958.png
    Ekran görüntüsü 2023-05-27 142958.png
    185,6 KB · Görüntüleme: 51
Son düzenleyen: Moderatör:
Çözüm
@DaggeroN Buldum hocam. Konsolu açıp
JavaScript:
let data = $('#detayAramaSonuclar').DataTable().rows().data();
Yukarıdaki kodu yazarsanız tüm datayı çekiyor. Bir for veya foreach döngüsü yardımıyla bu data değişkenini gezip tüm değerleri yazdırabilirsiniz. Çözüm olarak işaretlerseniz sevinirim. Başarılar dilerim.
Sen 1-2-3 gibi sayfa numaralarına her bastığında web sayfası verileri sağladığı sunucudan yeni veri çekerek senin ekranına getiriyor. Her seferinde bir nevi sayfayı yeniliyor. Sunucudan bütün dosyaları aynı anda çekmesini sağlamak web sitesinin işleyişini değiştirmek anlamına geliyor. Bunun da konsol üzerinden yapmanın mümkün olmadığını düşünüyorum.

Yani işin özü şu, sen bir şekilde konsoldan bütün verileri aynı anda çekip senin ekranına yansıtacak şekilde ayarlayabilsen bile sunucu veriyi çekmeye çalıştığı an yine kendi kodlamasındaki parametrelere göre çekecek. Sen sayfayı konsol kullanarak 300 veriyi aynı anda gösterecek şekilde ayarladın diyelim ve bunu denemek için bir şekilde sayfa üzerindeki butonlardan herhangi birine tıkladığın an sayfa yine kendi bildiğini yaparak kodlamasında belirtilen limit kadar veriyi sana sunacak ve sayfaya F5 atmakla aynı mantığa gelecek.
 
Son düzenleme:
Aslında DataTables | Table plug-in for jQuery kütüphanesi kullanılıyor.

Aşağıda kütüphanenin siteye entegre edilmiş 2 kod bloğunu bırakıyorum belki bir şeyler çıkar :)

JavaScript:
/**
* This parameter allows you to readily specify the entries in the length drop
* down menu that DataTables shows when pagination is enabled. It can be
* either a 1D array of options which will be used for both the displayed
* option and the value, or a 2D array which will use the array in the first
* position as the value, and the array in the second position as the
* displayed options (useful for language strings such as 'All').
*
* Note that the `pageLength` property will be automatically set to the
* first value given in this array, unless `pageLength` is also provided.
*  @type array
*  @default [ 10, 25, 50, 100 ]
*
*  @dtopt Option
*  @name DataTable.defaults.lengthMenu
*
*  @example
*    $(document).ready( function() {
*      $('#example').dataTable( {
*        "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]]
*      } );
*    } );
*/
"aLengthMenu": [ 10, 25, 50, 100 ],

JavaScript:
/**
* Detail the action that will be taken when the drop down menu for the
* pagination length option is changed. The '_MENU_' variable is replaced
* with a default select list of 10, 25, 50 and 100, and can be replaced
* with a custom select box if required.
*  @type string
*  @default Show _MENU_ entries
*
*  @dtopt Language
*  @name DataTable.defaults.language.lengthMenu
*
*  @example
*    // Language change only
*    $(document).ready( function() {
*      $('#example').dataTable( {
*        "language": {
*          "lengthMenu": "Display _MENU_ records"
*        }
*      } );
*    } );
*
*  @example
*    // Language and options change
*    $(document).ready( function() {
*      $('#example').dataTable( {
*        "language": {
*          "lengthMenu": 'Display <select>'+
*            '<option value="10">10</option>'+
*            '<option value="20">20</option>'+
*            '<option value="30">30</option>'+
*            '<option value="40">40</option>'+
*            '<option value="50">50</option>'+
*            '<option value="-1">All</option>'+
*            '</select> records'
*        }
*      } );
*    } );
*/
"sLengthMenu": " _MENU_ kayıt göster",

Bu da HTML kısmı.

HTML:
<div class="dataTables_length" id="detayAramaSonuclar_length">
    <label>
        <select name="detayAramaSonuclar_length" aria-controls="detayAramaSonuclar" class="custom-select custom-select-sm form-control form-control-sm">
            <option value="10">10</option>
            <option value="25">25</option>
            <option value="50">50</option>
            <option value="100">100</option>
        </select> kayıt göster
    </label>
</div>

Bir kullanıcı kütüphane sitesinin forumunda sormuş ve cevabını almış ancak ben var olan bir sayfayı nasıl değiştireceğimi bilmiyorum.

Kod:
Use the "lengthMenu" option to set these values.
 
@DaggeroN Buldum hocam. Konsolu açıp
JavaScript:
let data = $('#detayAramaSonuclar').DataTable().rows().data();
Yukarıdaki kodu yazarsanız tüm datayı çekiyor. Bir for veya foreach döngüsü yardımıyla bu data değişkenini gezip tüm değerleri yazdırabilirsiniz. Çözüm olarak işaretlerseniz sevinirim. Başarılar dilerim.
 
Çözüm
@DaggeroN Buldum hocam. Konsolu açıp
JavaScript:
let data = $('#detayAramaSonuclar').DataTable().rows().data();
Yukarıdaki kodu yazarsanız tüm datayı çekiyor. Bir for veya foreach döngüsü yardımıyla bu data değişkenini gezip tüm değerleri yazdırabilirsiniz. Çözüm olarak işaretlerseniz sevinirim. Başarılar dilerim.
Hocam sana zahmet döngü ile birlikte tüm kodu paylaşır mısın?
 
Hocam sana zahmet döngü ile birlikte tüm kodu paylaşır mısın?
JavaScript:
for (let index=1; index < $('#detayAramaSonuclar').DataTable().page.info().pages; index++) {
    let data = $('#detayAramaSonuclar').DataTable().page(index).rows().data();
    for (let i = 0; i < data.length; i++) {
        console.table(data);
    }
}
biraz uzun sürebilir çalışması. Direkt sayfalamadan devam edin bence.
 
JavaScript:
for (let index=1; index < $('#detayAramaSonuclar').DataTable().page.info().pages; index++) {
    let data = $('#detayAramaSonuclar').DataTable().page(index).rows().data();
    for (let i = 0; i < data.length; i++) {
        console.table(data);
    }
}
biraz uzun sürebilir çalışması. Direkt sayfalamadan devam edin bence.

Hocam eline sağlık. Bana yalnızca karar numaraları lazım. Senin data kodunu döngüye bağlayıp bir de click() fonksiyon ekledim. Hata vermesin diye de timer ekledim. Ancak ilk sayfayı çekikten sonra click() fonksiyonunu okuyamadık diye hata veriyor. Birkaç saniye sonra sayfaları değiştirmeye başlıyor :)

JavaScript:
for (let j = 0; j < 100; j++) {
    for (let i = 0; i < data.length; i++) {
        console.log(data[i].kararNo);
    }
    (function(j){
        setTimeout(function(){
            document.querySelector("#detayAramaSonuclar_paginate > ul > li:nth-child(" + j + ")").click();
        }, 3000 * (j + 1));
    })(j);
}

Senden ricam her sayfadaki karar numaralını listeledikten sonra sıradaki sayfaya geçen ve yine aynı işlemi tekrarlayan kadar yapan bir kod yazabilir misin?
 

Technopat Haberler

Geri
Yukarı