javascript ile siralama yapmak (order by)

Ana Sayfa » JavaScript » javascript ile siralama yapmak (order by)
JavaScript Yorum yapılmamış

şimdi sql de veri tabanından verileri çekerken sıralama olayı eywallah. iyi güzel.
fakat gelen sonuçlar arasında listelenen objeleri data içeriğinde bulunan değerlere göre sıralamak daha da güzel 🙂

olayı baya basite indirdim.
öncelikle aşağıdaki fonksiyonu ekliyorsunuz sayfanıza.

 

function order_by(ilgili_obje_root, ilgili_obje_item, datasetName, cpu, type) {
    ilgili_obje_root = $(ilgili_obje_root);
    ilgili_obje_item = $(ilgili_obje_item);

    /*--------asc - START -----------------------*/
    if (cpu === "asc") {
        ilgili_obje_root.find(ilgili_obje_item).sort(function (a, b) {

            if (type == "string") {
                if (a.dataset[datasetName] > b.dataset[datasetName]) {
                    return 1;
                }
                if (a.dataset[datasetName] < b.dataset[datasetName]) {
                    return -1;
                }
                return 0;

            } else {
                return +a.dataset[datasetName] - +b.dataset[datasetName];
            }
        }).appendTo(ilgili_obje_root);
    }// cpu-asc

    /*--------asc - END -----------------------*/
    /*------------------------------*/
    /*--------desc - START --------------------*/
    if (cpu === "desc") {
        ilgili_obje_root.find(ilgili_obje_item).sort(function (a, b) {

            if (type == "string") {
                if (b.dataset[datasetName] > a.dataset[datasetName]) {
                    return 1;
                }
                if (b.dataset[datasetName] < a.dataset[datasetName]) {
                    return -1;
                }
                return 0;

            } else {
                return +b.dataset[datasetName] - +a.dataset[datasetName];
            }

        }).appendTo(ilgili_obje_root);
    }  //desc
    /*--------desc - END --------------------*/

}//order_by - function

daha sonra neyi nereye göre sıralamak istiyorsanız bu fonksiyonu çağırmanız yeterli.
örnek javascript kullanımı

order_by("#liste ul", "li", "fiyat", "asc", "integer");

html kısmındaki olayı da söyle;
örnek HTML:

<div id="liste">
<ul>

<li data-fiyat="199" data-siralama="5" data-il="adana">fiyat:199 TL - sira:5 - il:adana</li>
<li data-fiyat="150" data-siralama="8" data-il="bursa">fiyat:150 TL - sira:8 - il:bursa</li>
<li data-fiyat="39" data-siralama="88" data-il="zonguldak">fiyat:39 TL - sira:88 - il:zonguldak</li>
<li data-fiyat="850" data-siralama="25" data-il="denizli">fiyat:850 TL - sira:25 - il:denizli</li>
<li data-fiyat="45" data-siralama="9" data-il="samsun">fiyat:45 TL - sira:9 - il:samsun</li>

</ul>
</div>


canlı örnek için: http://jsfiddle.net/dilsaz/mgkv85on/3/

YORUM YAZ