v2.5.2
Giriş yap

Sayfa Yenilemeden a-z / z-a vb Sıralama

aydinkeskin
545 defa görüntülendi

Merhaba Arkadaşlar.

sayfa yenilemeden var sayfaya dökülmüş olan verileri şarta göre sıralamayapmak istiyorum.

select =

stok ta olanlar
a dan z ye
z den a ya
en ucuz
en pahalı


bu konuda yardımcı olabilirmisiniz.

Cevap yaz
Cevaplar (4)
aydinkeskin
1276 gün önce

malesef beceremedim pek

<div class="shop-select" name="filter" id="filter">
    <select>
        <option value="new">Yeni eklenenler</option>
        <option value="AZ">A dan Z ye</option>
        <option value="ZA">Z den A ya</option>
        <option value="stok">Sadece Stoktakiler</option>
    </select>
</div>

<div class="shop-bottom-area mt-35"> 
	<div class="tab-content jump"> 
		<div id="shop-1" class="tab-pane active">
			<div class="row responsive-md-class">
				<div class="col-xl-3 col-md-4 col-sm-6 ">
					<article class="list-product">
						<div class="img-block">
							<div class="quick-view">
								<a class="quick_view" href="#" data-link-action="quickview" title="Quick view" data-toggle="modal" data-target="#exampleModal">
									<i class="ion-ios-search-strong"></i>
								</a>
							</div>
						</div>
                    </article>
	            </div>
            </div>
        </div>
    </div>
</div>

dediğim gibi javasciprt ile nerde ise alakam bile yok

//Ilgili divin icine data.success i yazdıracaksın
// su kısmı pek algılayamadım o yüzden de çalışmamış olabilir

$filterdata = $_POST["datafilter"];
if($filterdata == "AZ") {
    $sqlend = "ORDER BY id DESC";
}
else if ($filterdata == "ZA") {
    $sqlend = "ORDER BY id ASC";
}
else if ($filterdata == "new") {
    $sqlend = "ORDER BY id ASC";
}
else if ($filterdata == "stok") {
    $sqlend = "ORDER BY stok DESC";
}
 

$liste = pre("SELECT * FROM urunler  ".$sqlend."");
$liste->execute([]);
$select = $liste->fetch(2);
foreach($select as $row){
    $array["success"] .= $row["name"];
}
echo json_encode($array);

yinede cevabın için teşekkürler @ibrahimali

ibrahimali
1277 gün önce

Şöyle yapabilirsin bence:
Select oluşturup, jquery de .change() ile değişimi yakalayıp daha sonrasında her değişime göre post yapa bilirsin
Örnek HTML:

<select name="filter">
    <option value="atoz">A - dan Z - ye</option>
    <option value="ztoa">Z - dan A - ya</option>
    <option value="pricelowtohigh">Önce ucuz</option>
    <option value="pricehightolow">Önce pahalı</option>
</select>

Jquery:

$('#filter').on('change', function(){
      var datafiler = this.value;
      $.ajax({
       type: "POST",
       url: '/filter.php',
       data: {"datafilter":datafilter},
       dataType: "json",
       success: function (data)
               {
                if(data.error) {
                    alert(data.error);
                }
                else {
                    //Ilgili divin icine data.success i yazdıracaksın
                  }
                }
               },
       });
});

filter.php:

<?php
$filterdata = $_POST["datafilter"];
if($filterdata == "atoz") {
    $sqlend = "ORDER BY name DESC";
}
else if ($filterdata == "ztoa") {
    $sqlend = "ORDER BY name ASC";
}
else if ($filterdata == "pricelowtohigh") {
    $sqlend = "ORDER BY price ASC";
}
else if ($filterdata == "pricehightolow") {
    $sqlend = "ORDER BY price DESC";
}

<!-- Sql den select işleminin sonuna $sqlend i ekliyeceksin, döngüye salandan sonra success değişkenine atayacaksın -->
<!-- Örnek -->
while($row = $select->fetch())
    $array["success"] .= $row["name"];
}
echo json_encode($array);
?>

aydinkeskin
1277 gün önce

datatables site tarafında işime pek yaramıyorda ajax kısmında sayfa yenilenmeden otomatik direk listeme işimi görür

fakat benim bilgim ajax tarafında çok kıt :)

jct
1278 gün önce

Bunu yapan "Data Tables" adında bir plugin var. Ancak ben bu bahsettiğin istediğim sıralamaları Ajax ile yaptım. Mevcut tabloda sıralama için ikonlar koyup o sıralamaya göre veriyi Ajax ile tekrar çekebilirsin. Umarım anlatabilmişimdir.