Javascript for döngüsü hakkında - R10.net
  • 15-09-2020, 19:30:03
    #1
    Not: Konu başlığını yanlış yazmışım. Javascript for döngüsü hakkında olacaktı. Şimdi talep bıraktım, düzelene kadar kusuruma bakmayın.

    Merhabalar hocalarım. Altta bulunan kodda 1 yazan değerli birer birer artırarak en az 30 kere daha yazmam lazım. For döngüsüne soktuğum zaman fonksiyon isimlerinde yazım hatası alıyorum. Araştırdım ama çözüm bulamadım, Javascripte çok hakim değilim. Bu kodu nasıl for döngüsüne sokabilirim?

    function fonksiyonum1(){
    $('.kutuoneri1').css('background-color', '#ff000000'); domainci = $('input[name="oneri1"]').val();
    $.post("sorgu/asonerioneri1.php",{domain: domainci},function(veri){var sole=JSON.parse(veri);
        if(sole.kayit == null ) {$('.kutuoneri1').css('background-color', 'green'); } else{$('.kutuoneri1').css('background-color', 'red'); }  }) }
    https://my.burtinet.com/aff.php?aff=12​​​​
  • 15-09-2020, 19:39:53
    #2
    for (var i = 1; i <= 30; ++i) {
        $(`.kutuoneri${i}`).css('background-color', '#ff000000');
        domainci = $(`input[name="oneri${i}"]`).val();
        $.post(`sorgu/asonerioneri${i}.php`, { domain: domainci },
            function (veri) {
                var sole = JSON.parse(veri);
                if (sole.kayit == null) { $(`.kutuoneri${i}`).css('background-color', 'green'); }
                else { $(`.kutuoneri${i}`).css('background-color', 'red'); }
            })
    }
    Yalnız bu fonksiyonda şöyle bir sorun var. siteye aynı anda 30 defa veri yollacağı için yığılmalar olacaktır.
    Eğer aşağıdaki kodları kullanırsanız, bir post işlemi gerçekleşip dönüş aldığında diğer post isteğini gönderecektir.
    async function func1() {
        for (var i = 1; i <= 30; ++i) {
            await res();
        }
    };
    
    const res = () => {
        return new Promise((resolve, reject) => {
            $(`.kutuoneri${i}`).css('background-color', '#ff000000');
            domainci = $(`input[name="oneri${i}"]`).val();
            $.post(`sorgu/asonerioneri${i}.php`, { domain: domainci },
                function (veri) {
                    var sole = JSON.parse(veri);
                    if (sole.kayit == null) { $(`.kutuoneri${i}`).css('background-color', 'green'); }
                    else { $('.kutuoneri1').css('background-color', 'red'); }
                    resolve(veri);
                })
        })
    }
    
    func1();
  • 15-09-2020, 19:50:13
    #3
    tolgaand adlı üyeden alıntı
    for (var i = 1; i <= 30; ++i) {
    $('.kutuoneri1').css('background-color', '#ff000000');
    domainci = $('input[name="oneri1"]').val();
    $.post(`sorgu/asonerioneri${i}.php`, { domain: domainci },
    function (veri) {
    var sole = JSON.parse(veri);
    if (sole.kayit == null) { $('.kutuoneri1').css('background-color', 'green'); }
    else { $('.kutuoneri1').css('background-color', 'red'); }
    })
    }
    Hocam örnek için çok teşekkür ederim. Peki fonksiyon ismine ve 1 yazan tüm yerlere i değişkenini nasıl atayabiliriz? fonksiyonum${i}() şeklinde denedim ama hata verdi.
    https://my.burtinet.com/aff.php?aff=12​​​​
  • 15-09-2020, 19:52:41
    #4
    ASametYildirim adlı üyeden alıntı
    Hocam örnek için çok teşekkür ederim. Peki fonksiyon ismine ve 1 yazan tüm yerlere i değişkenini nasıl atayabiliriz? fonksiyonum${i}() şeklinde denedim ama hata verdi.
    neden böyle bir şey yapıyorsunuz ki hocam? döngü ile 30 defa bir fonksiyon işlemini yapıyorsunuz zaten. ki eğer böyle birşeye gerek varsa, tüm fonksiyonları bir objeye atamanız gerekiyor.

    //edit döngüde 1 yazan heryeri arttırabilirsiniz.
    //edit2: sizin için tekrar kodları güncelledim.
  • 15-09-2020, 20:23:14
    #5
    tolgaand adlı üyeden alıntı
    neden böyle bir şey yapıyorsunuz ki hocam? döngü ile 30 defa bir fonksiyon işlemini yapıyorsunuz zaten. ki eğer böyle birşeye gerek varsa, tüm fonksiyonları bir objeye atamanız gerekiyor.

    //edit döngüde 1 yazan heryeri arttırabilirsiniz.
    //edit2: sizin için tekrar kodları güncelledim.
    Hocam ilginiz ve yardımınız için çok teşekkür ederim.
    https://my.burtinet.com/aff.php?aff=12​​​​