v2.5.2
Giriş yap

Click edilen tag'ın data değerini değişkene atamama ?

acemi
228 defa görüntülendi

burda tıkladığım value değeri grid ise Liste = "grid" list ise Liste = "list"
olarak atansın istiyorum ama bir türlü yapamadım.


    function Data_Send(query = '', page = 1)    { 
        var action = 'UListPost';
        var min_fiyat = $('#min_fiyat').val();
        var max_fiyat = $('#max_fiyat').val();
        var durumtag = Filtre('durumtag');
        var kategori = Filtre('kategori');
        var ozellik = Filtre('ozellik');
        var goster  = $("#UrunShow").val(); 
        var Liste = "?????";  
  
        $.ajax({
            url:"/Data",
            method:"POST",
            dataType: "json",
            data:{Liste:Liste, goster:goster, query:query, page:page, action:action, min_fiyat:min_fiyat, max_fiyat:max_fiyat, durumtag:durumtag, kategori:kategori, ozellik:ozellik},
            success:function(data){
                $('.cikti').html(data.avg);
                $('#sayfalama').html(data.pagination);
                $('span#toplam').html(data.total);
            }
        });
    }
    

söyle birşey denedim yinede çıktıyı oraya atayamadım.

function List(){
    $("body").on("click", ".consol", function(){
        return $(this).data("value");
    }); 
    
    console.log(List());
    
]
 
<div class="filter-action">
    <a href="nojavascript...;" data-value="grid" class="consol fa-solid fa-grip active"></a>
    <a href="nojavascript...;" data-value="list" class="consol fa-solid fa-list"></a>
</div>
Cevap yaz
Cevaplar (5)
ebykdrms
547 gün önce
let listType = $(".filter-action a.active").attr("data-value");
const $listTypeButtons = $(".filter-action a").on("click",function(){ 
    listType = $(this).attr('data-value');
});

function Data_Send(query = '', page = 1)    { 
    var action = 'UListPost';
    var min_fiyat = $('#min_fiyat').val();
    var max_fiyat = $('#max_fiyat').val();
    var durumtag = Filtre('durumtag');
    var kategori = Filtre('kategori');
    var ozellik = Filtre('ozellik');
    var goster  = $("#UrunShow").val(); 
    var Liste = listType;  

    $.ajax({
        url:"/Data",
        method:"POST",
        dataType: "json",
        data:{Liste, goster, query, page, action, min_fiyat, max_fiyat, durumtag, kategori, ozellik},
        success:function(data){
            $('.cikti').html(data.avg);
            $('#sayfalama').html(data.pagination);
            $('span#toplam').html(data.total);
        }
    });
}
acemi
547 gün önce

@ebykdrms
teşekkürler bu sefer oldu
evet doğru düşünce
click yoksa veri tut
clik varsa veriyi değiştir :)
anlamadığım bunu ben farklı bir şekilde yapmıştım niye olmadığınıda şimdi anladım.

sanırım ben kodları aşağıda yazıyordum değişkende tutar diye :)
php deki gibi sandım biraz eşdeğer değişken yok ise sayfa içinde include edilenlerde bakar varsa basar :)
burda öyle olmuyormuş anlaşılan

acemi
547 gün önce

@ebykdrms
dostum onu daha önce yaptım ama burdaki esas konu active olmayan değere tıklayıncada Liste = "grid" e tıklanınca "list" liste tıklanınca
dğerlerin gelmesi

ben data-value="grid" e tıklayınca liste değeri grid
data-value="list" e tıklayınca Liste değeri list olarak post etmesi gerekiyor yani yapmak isteyip de yapamadığım husus
eğer post işlemi gerçekleşti ise o a tagına active classını ondan sonra yazdırıcam.

@morty
dostum seninkini de daha önce denedim öyle olunca iki a tagındada .consol classı olduğu için sadece grid i post ediyor diğerine işlem yaptırmıyor.

üstüne query ile arama işlemi yaptıyorum. listname e değer vermezsem eğer ilk gönderirken
query çalışmıyor değerler haliyle listname e işliyor

$('.arama').click(function(){        Data_Send();    });

$('#UrunShow').click(function(){        Data_Send();    }); 
    function Filtre(class_name) {
        var filter = [];
        $('.'+class_name+':checked').each(function(){
            filter.push($(this).val());
        });
        return filter;
    }
    $('#fiyat_range').slider({
        range:true,
        min:0,
        max:99999,
        values:[0, 99999],
        step:500,
        stop:function(event, ui)
        {
            $('#fiyat_show').html(ui.values[0] + ' - ' + ui.values[1]);
            $('#min_fiyat').val(ui.values[0]);
            $('#max_fiyat').val(ui.values[1]);
            Data_Send();
        }
    });
    

şimdi böyle olunca olmuyor e şimdi listeleme türü list iken arama verdiğinide anlatmam gerekiyor ki sadece
bunla da bitmiyor
üstüne 12 24 35 vs diye gösterme laanım var
oda yetmiyor filtre yaptığım işlemlerim var
e son olarak da fiyat aralığım var

e bunların hepsi birşeşince son gelen listname ile bunların totomatik de gitmesi gerekiyor :)

bende js özürlü biriyim araştır araştır öyle yapıyorum şimdilik
çok aşırı işaret var hiç sevmiyorumda hobi benimkisi biraz biraz da inat illa öğrenicem :)

ebykdrms
548 gün önce
function Data_Send(query = '', page = 1)    { 
    var action = 'UListPost';
    var min_fiyat = $('#min_fiyat').val();
    var max_fiyat = $('#max_fiyat').val();
    var durumtag = Filtre('durumtag');
    var kategori = Filtre('kategori');
    var ozellik = Filtre('ozellik');
    var goster  = $("#UrunShow").val(); 
    var Liste = $(".filter-action a.active").attr("data-value");  

    $.ajax({
        url:"/Data",
        method:"POST",
        dataType: "json",
        data:{Liste, goster, query, page, action, min_fiyat, max_fiyat, durumtag, kategori, ozellik},
        success:function(data){
            $('.cikti').html(data.avg);
            $('#sayfalama').html(data.pagination);
            $('span#toplam').html(data.total);
        }
    });
}
morty
548 gün önce

Yanlış anlamadıysam böyle bir şey deneyebilirsin.

function Data_Send(list, query = '', page = 1)    { 
    .
    .
    .
    .
    var Liste = list;
    .
    .
    .
    .
}

$("body").on("click", ".consol", function(){
	Data_Send($(this).attr("data-value"));
});