• 02-03-2020, 09:54:26
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba,

    Ajax ile ilan ekleme işlemi yapıyorum, fakat bazen ilan eklerken birden fazla ekliyor. Mesela ilanlarım sayfasındayım ilan arama yaptırıyorum ve o kelimenin geçtiği ilanları buldum diyelim, daha sonra ilan ekle diyorum 2 defa ekliyor. Ajax sadece bir kez göndermesini nasıl sağlarım.

    $("#ilanEkle").on('submit', (function (e) {
    var baslik = $.trim($("#ilanEkle .baslik").val());
    var aciklama = $.trim($("#ilanEkle .aciklama").val());
    
    if (baslik.length === 0) {
    alert("Baslık boş geçilemez");
    $("#ilanEkle .baslik").focus();
    return false;
    } else if (aciklama.length === 0) {
    alert("Açiklama boş geçilemez");
    $("#ilanEkle .aciklama").focus();
    return false;
    } else {
    e.preventDefault();
    $.ajax({
    url: "php/gonder.php",
    type: "POST",
    data: new FormData(this),
    contentType: false,
    cache: false,
    processData: false,
    success: function (data) {
    alert(data);
    window.location.reload(true);
    //console.log(data);
    },
    error: function (e) {
    alert("Hata: " + e);
    }
    });
    
    return false;
    }
    }));
  • 02-03-2020, 10:05:53
    #2
    window.location.reload(true);
    Sorun burada olabilir. Reload yaparken tekrar form gönderme yapıyor sanırım. Bu satırı kaldırıp deneyin ve sıkıntı olmuyorsa bununla değiştirin.
    location = location.href;
    Ayrıca
    error: function (e) {
    alert("Hata: " + e);
    }
    });
    
    return false;
    }
    }));
    Ayrıca bunu şöyle değiştirin.
    error: function (e) {
    alert("Hata: " + e);
    return false;
    }
    });
    
    }
    }));
  • 02-03-2020, 11:28:12
    #3
    Submit olunca form id değerini js ile değiştirip ondan sonra ajax ile post işlemini yapın.
    Bu şekilde ilk tıklamada form id değiştiği için tekrar tıklama yapılsa dahi js kodlarınız tekrar tetiklenmeyecektir.
  • 02-03-2020, 14:06:38
    #4
    Submit butonuna tıkladıktan sonra disable edin hocam. Mobil olduğum için kodu yazamıyorum. Akşam hatırlatırsanız iletebilirim.
  • 02-03-2020, 14:15:48
    #5
    Ajax ile post edilme ve normal submit butonu ile post edilme işlemi olarak iki işlem gerçekleşiyor , bunun olmaması için gereken önlemi almanız gerekiyor. Bunun için ilk kod üzerine var başlık ile başlayan kod üzerine

    e.preventDefault();

    Eklerseniz sorununuz çözülür.
  • 02-03-2020, 15:28:11
    #6
    dnaz adlı üyeden alıntı: mesajı görüntüle
    Ajax ile post edilme ve normal submit butonu ile post edilme işlemi olarak iki işlem gerçekleşiyor , bunun olmaması için gereken önlemi almanız gerekiyor. Bunun için ilk kod üzerine var başlık ile başlayan kod üzerine

    e.preventDefault();

    Eklerseniz sorununuz çözülür.
    Zaten preventDefault işlemi tanımlı.
  • 02-03-2020, 15:35:46
    #7
    Onu dediğim yere alıp denermisiniz
  • 02-03-2020, 16:50:31
    #8
    denedim fakat olmadı.



    Bu sayfada birden fazla ajax isteği olduğu için bunlar birbiri ile mi çakışıyor. Nasıl 2 defa çalışıyor. Birde console üzerinden giden istekleri görebiliyor muyuz? Bu sayede belki yakalayabilirdik.
  • 02-03-2020, 17:11:39
    #9
    fiberdev adlı üyeden alıntı: mesajı görüntüle
    denedim fakat olmadı.




    Bu sayfada birden fazla ajax isteği olduğu için bunlar birbiri ile mi çakışıyor. Nasıl 2 defa çalışıyor. Birde console üzerinden giden istekleri görebiliyor muyuz? Bu sayede belki yakalayabilirdik.
    2 ajaxı öyle direkt çalıştıramazsınız tam sayfanın kodunu atın. Bunu belirtmemiştiniz.
    Kısaca yapabileceğiniz: 2.ajaxı fonksiyon içine alın.
    1.ajaxın success veya complete function ın içine de onu nasıl isimlendirdiyseniz ekleyin örnek ajaxiki();

    Bu olay tabi ardı ardına ajax çalıştırmak için. Kodun tamamını atın daha iyi anlaşılır.