lostyazilim

Javascript Kodu Düzenleme İsteği

9 Mesajlar 1.292 Okunma
lstbozum
wmaraci reklam

ozanakkaya ozanakkaya WM Aracı Kullanıcı
  • Üyelik 12.05.2014
  • Yaş/Cinsiyet 47 / E
  • Meslek Memur
  • Konum Denizli
  • Ad Soyad O** A**
  • Mesajlar 226
  • Beğeniler 42 / 53
  • Ticaret 8, (%100)
Herkese merhaba,
Kullandığım js kodu:


$('#btnSubmit').click(function() {
$('.row-select input:checked').each(function() {
var id, name;
id = $(this).closest('tr').find('.id').html();
name = $(this).closest('tr').find('.name').html();
Mail_Check(name,id);
})
})


Butonu tıkladığımda tablodaki checkbox işaretli olan alanlarda kod çalışıyor ve Mail_Check fonksiyonunu çalıştırıyor.

Buton tıklandığında tabloda checkbox işaretli olan alanların hepsinde bu kod çalışıyor.

En üstten başlayıp, tablodaki diğer satırlarda kodun tek tek çalışmasını nasıl sağlayabilirim. Bu haliyle sunucuyu zorluyor. İlk satırda çalışıp diğer satırlarda tek tek Mail_Check fonksiyonu çalışacak.

Yardımcı olanlara şimdiden teşekkürler.
 

 

wmaraci
reklam

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 320
  • Ticaret 19, (%100)
$('.row-select input:checked').each(function() {
Satırını
$('.row-select input[type=checkbox]').change(function() {
Yapmanız yeterlidir.. Böylelikle checkboxa tıklandığında işlem yapacaktır.. Sadece aktif olduğunda işlem yapmak istiyorsanız eğer bu if koşulunu eklemeniz yeterlidir ;

if( this.checked )
{
alert("aktif");
} else {
alert("deaktif");
}


Tam kod ise ;
$('.row-select input[type=checkbox]').change(function() {
if( this.checked )
{
var id, name;
id = $(this).closest('tr').find('.id').html();
name = $(this).closest('tr').find('.name').html();
Mail_Check(name,id);
}
});


id = $(this).closest('tr').find('.id').html();
Satırı çalışmaz ise eğer $(this) dediğiniz için checkbox içerisinde arayacaktır. Bunun içinde, $(this).parent() // bir önce ki div, parent().parent() // 2 önce ki div diyerek gerekli bölüme ulaştırabilirsiniz. Umarım yardımcı olur,

Kolay gelsin :rolleyes:
 

 

ozanakkaya ozanakkaya WM Aracı Kullanıcı
  • Üyelik 12.05.2014
  • Yaş/Cinsiyet 47 / E
  • Meslek Memur
  • Konum Denizli
  • Ad Soyad O** A**
  • Mesajlar 226
  • Beğeniler 42 / 53
  • Ticaret 8, (%100)
Yanıtınız için teşekkür ederim. Ancak benim tabloda her satırda fonksiyonu çalıştıran butonum zaten var ve bu butona tıklayarak tek tek çalıştırabiliyorum.

Benim amacım toplu işlem gibi birşey yapmak. Üstte tümünü seç checkbox'ı işaretleyip tüm checkboxları seçtirmek, ardından farklı bir buton ile yukarıdan aşağıya sıra ile üstteki fonksiyonu çalıştırtmak.

Benim verdiğim kod tüm satırlarda çalışmaya başlıyor. Ben butonu tıklayınca işaretli ilk satırda fonksiyon çalışacak, sonra 2. satıra geçecek, buradaki işlem bitince de sonraki satır.

Bu fonksiyon ile veritabanındaki ilgili alana hatalı olan mail adresleri için veri aktarıyorum. Tümü aynı anda çalışınca sorun yaratıyor.

Umarım anlatabilmişimdir. İlginiz için teşekkür ederim.
 

 

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 320
  • Ticaret 19, (%100)
ozanakkaya

Şöyle bir örnek verebilirim o zaman ; https://jsfiddle.net/6wdranmm/1/
 

 

wmaraci
wmaraci

ozanakkaya ozanakkaya WM Aracı Kullanıcı
  • Üyelik 12.05.2014
  • Yaş/Cinsiyet 47 / E
  • Meslek Memur
  • Konum Denizli
  • Ad Soyad O** A**
  • Mesajlar 226
  • Beğeniler 42 / 53
  • Ticaret 8, (%100)
Merhaba, ilginiz için tekrar teşekkür ederim. Ancak verdiğiniz bağlantıdaki kodlarda işe yaramadı. Sanırım ben derdimi anlatamadım. checkboxların sıra ile işaretlenmesini vs istemiyorum.

İşaretlediğim checkbox larda sıra ile işlem yapılmasını istiyorum. İşlem sırasında fonksiyonda ajax var. ajax tamamlandığında tabloda sonraki işaretli satıra geçecek.
 

 

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 320
  • Ticaret 19, (%100)
ozanakkaya

Göndermiş olduğum linkte ki örnek zaten sırasıyla checked edilmesi değildi. Sırasıyla "zaman" koyarak işlem yaptırmaktı. Koddaki checked özelliğini kaldırıp kendi kodlarınızı eklediğinizde, sırasıyla işlem yaptırabileceksiniz.. Örnek vermemin sebebi div içerisinde ki checkboxları dönüp sırasıyla tek tek işlem yapmak oldu.. Sizde filtre koyarak "checked" edilmiş kutuları sırasıyla işleme alabileceksiniz haliyle kendi kodlarınızı girdiğinizde sırayla yapmış olacak :) Özetçesi, checked edilmiş ne kadar kutu varsa sistem bunu listeye alacak, her satırı tek tek işleme sokucak. Bu işlem içerisinde de siz kendi dosyalarınızı entegre ettiğiniz zaman istediğiniz sonuca varmış olacaksınız diye düşünüyorum..
 

 

ozanakkaya ozanakkaya WM Aracı Kullanıcı
  • Üyelik 12.05.2014
  • Yaş/Cinsiyet 47 / E
  • Meslek Memur
  • Konum Denizli
  • Ad Soyad O** A**
  • Mesajlar 226
  • Beğeniler 42 / 53
  • Ticaret 8, (%100)
Sayın edcsmile, verdiğiniz kodları kullanarak üst mesajlarımda belirttiğim işlemi gerçekleştirdim.

Kullandığım kod

<script>

$(document).ready(function() {

$('#clickMe').click(function(){
cagir();
});
});
var total = 15;
//$(".row-select input[type=checkbox]").length;
var a = 0;
var next = false;

function cagir() {
$(".row-select input[type=checkbox]").eq(a).attr("checked", "checked");
var checkedIds = $(".row-select .checkbox:checked").map(function() {

Mail_Check(this.name,this.id);

})
$(".row-select input[type=checkbox]").eq(a).attr("checked", false);
a++;

setTimeout(function() {

if( a < total )
{
cagir();
}
}, 8000);
}
</script>


Bu kod sonrası, kendi sitemde soru soran üyelere "biraz siz uğraşın" cümlesini söylediğim aklıma geldi nedense :confused:
 

 

ozanakkaya ozanakkaya WM Aracı Kullanıcı
  • Üyelik 12.05.2014
  • Yaş/Cinsiyet 47 / E
  • Meslek Memur
  • Konum Denizli
  • Ad Soyad O** A**
  • Mesajlar 226
  • Beğeniler 42 / 53
  • Ticaret 8, (%100)
Tekrar merhaba,

Üstteki işlemin güncellenmesi gerekti. setTimeout yerine, Mail_Check fonksiyonu tamamlandıktan sonra alt satırdan devam etmesini nasıl sağlayabilirim.

önceki kodda 8 saniye olarak belirlendi, bazı sorgular 1 saniye, bazıları 5 saniye sürüyor. Bu durumda bekleme oluyor. Bazı sorgular da üst üste 20 saniye sürünce de yığılma oluyor.
 

 

SancarSaran SancarSaran WM Aracı Kullanıcı
  • Üyelik 14.01.2018
  • Yaş/Cinsiyet 52 / E
  • Meslek Programcı
  • Konum İzmir
  • Ad Soyad S** S**
  • Mesajlar 319
  • Beğeniler 4 / 111
  • Ticaret 0, (%0)
Javascripte hoş geldiniz.

işleyeceğin tüm satırları id ile işaretle. Yani bunların bir işleme sırası olsun.

Mail check bu idi ile çalışsın ve içinde şu anda çalışan id diye bir değişken bilgisi olsun.

ajax request in success döndürdüğünde mail_check oradan çalışşsın bir sonraki id yi alsın.

Timeout la şunla bunla olmaz.

Promises ile yapabilirsin.
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al