v2.5.2
Giriş yap

Jquery birden fazla butonun bir value döndürmesi

uniquewhitecat
398 defa görüntülendi

Merhabalar,

Projem için jquery ile bir sepet yapmam gerekli ve bu sepeti yaparken div içerisinde verileri getirebiliyorum.gelen verilerin hepsi farklı ıd değerine sahip ama
kod ile eişmeye çalıştığımda

html

<div>
  <input type="hidden" name="producecode" class="pdcode" value="{{per.produceCode}}" />
  <input type="hidden" name="useremail" class="uponequantity" value="{{user.username}}" />
  <button class="btn btn-sm btn-primary" onclick="upoq()"><i class="fa fa-plus"></i></button>
</div>

jquery

$(".up").click(function(){
    console.log($(".prdtd").find("input:first-child").attr("value"));
    console.log($(".uponequantity").val());
    $.ajax({
        type: "POST",
        url: "/uponequantity/",
        headers: { "X-CSRFToken": '{{csrf_token}}' },
        data: {
            "producecode":$(".pcode").val(),
            "useremail":$(".uponequantity").val(),
        },
        success: function() {
            console.log('success');
        }
    });
})

kodunu yazdığım zaman tek bir ıd dönüyor her buton için
sorunu nasıl çözebilirim?

Cevap yaz
Cevaplar (4)
munzevi
745 gün önce

edit: aynı mesajı iki kez gönderdiğim için, bu alanı sildim.

munzevi
745 gün önce

değer almanın çok sayıda yolu var. bu şekilde çok sayıda değer gönderecek isen, yanlış bir yaklaşım.

$('div').serialize();

bu seçili alan içerisinde yer alan tüm form elemanları seçerek tek bir veri haline getirir. php tarafından $_POST["name"] şeklinde iletilenlere teker teker ulaşabilirsin.

kısaca, divine bir id veya clas ver ve serialize ederek ajaxa bildir.

örnek

var data = $('div').serialize();

    $.ajax({
        type: "POST",
        url: "/uponequantity/",
        headers: { "X-CSRFToken": '{{csrf_token}}' },
        data: data
        });
aziz1235
745 gün önce

ben olsan butona attribute olarak id verirdim şöyle

<button class="btn btn-sm btn-primary addBtn" data-id={{user.id}}><i class="fa fa-plus"></i></button>

jquery olan kısımdada o id yi alırdım

$('body').on('click', '.addBtn', function(){
    let id = $(this).data('id')
    console.log(id)
})
ismailslmnv
745 gün önce

Html kodunu düzenleyip

<div>
    <input type="hidden" name="producecode" class="pdcode" value="{{per.produceCode}}" />
    <input type="hidden" name="useremail" class="uponequantity" value="{{user.username}}" />
    <button class="btn btn-sm btn-primary" onclick="upoq(per.produceCode, user.username)"><i class="fa fa-plus"></i></button>
</div>
</pre>

onClick handler'ini de bu şekilde alırsan çalışır.

 function uponq(prodId, username){
     //Blablabla
 }