• 16-02-2023, 11:26:34
    #1
    Web Tasarım ve Yazılım
    Merhaba arkadaşlar bir konuda yardımınız gerekli.
    Ajax ile veri gönderim aldığım bir yapıda bekletme ekranı yapmaya çalışıyorum.
    Alert olarak sweetalert2 kullanıyorum loader var ama timer sayıyor.
    Ben bu timer ı iptal edip ajaxdan veri gelene kadar bekletmek istiyorum.
    Kiminde veri hızlıca geliyor kiminde bekletmem gerekiyor.
    Timer olmadan nasıl yapabilirim
  • Kabul Edilen Cevap
    • Bunu kendine göre geliştir.


      function submitPost(){
          $('#loader_div').css("display", "block"); // ajax başladı loader ekranını göster
          $.ajax({
              type:'POST',
              url:'post.php',
              data: $('#header_top_form').serialize(),
              success:function(html){
                  $('#loader_div').css("display", "none"); // ajax bitti loader ekranını gizle
              }
          }); 
      }
  • 16-02-2023, 11:31:20
    #2
    $.ajax({
    url: 'islem.php',
    dataType: 'html',
    success: function(data) {
    $('#result').html(data); // islem.php den gelen veri
    }
    });
  • 16-02-2023, 11:31:33
    #3
    bostanci96 adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar bir konuda yardımınız gerekli.
    Ajax ile veri gönderim aldığım bir yapıda bekletme ekranı yapmaya çalışıyorum.
    Alert olarak sweetalert2 kullanıyorum loader var ama timer sayıyor.
    Ben bu timer ı iptal edip ajaxdan veri gelene kadar bekletmek istiyorum.
    Kiminde veri hızlıca geliyor kiminde bekletmem gerekiyor.
    Timer olmadan nasıl yapabilirim
    Bunu farklı bir şekilde yapabilirsin. Bir tane loading ekranı tasarla, tasarım bittikten sonra display: none yap css ile yani ekrandan gitsin. Butona tıkladığında bu loader ekranını js tarafında görünür yap $(".loading_div").css("display", "block"); bunu yaptığın zaman loading ekranı görünür olacak, eğer üzerine binan farklı ekranlar varsa onları da tam tersi display none yaparsın. Ajax bittiği zaman success kısmında tekrardan aynı işlemlerle loading ekranını bu sefer kapatacaksın $(".loading_div").css("display", "none"); Umarım anlatabilmişimdir.
  • 16-02-2023, 11:32:56
    #4
    Web Tasarım ve Yazılım
    bulutaylak adlı üyeden alıntı: mesajı görüntüle
    Bunu farklı bir şekilde yapabilirsin. Bir tane loading ekranı tasarla, tasarım bittikten sonra display: none yap css ile yani ekrandan gitsin. Butona tıkladığında bu loader ekranını js tarafında görünür yap $(".loading_div").css("display", "block"); bunu yaptığın zaman loading ekranı görünür olacak, eğer üzerine binan farklı ekranlar varsa onları da tam tersi display none yaparsın. Ajax bittiği zaman success kısmında tekrardan aynı işlemlerle loading ekranını bu sefer kapatacaksın $(".loading_div").css("display", "none"); Umarım anlatabilmişimdir.
    tüm yapıda sweetalert olduğundan onun üzerinden gitmek istedim Teşekkür ederim deneyeyim bir
  • 16-02-2023, 11:35:29
    #5
    Ajax isteğinden veri gelince swal.close() yapıp dener misin
  • 16-02-2023, 11:35:29
    #6
    Bu cevap, konu sahibi tarafından kabul edilebilir bir cevap olarak işaretlendi.
    Bunu kendine göre geliştir.


    function submitPost(){
        $('#loader_div').css("display", "block"); // ajax başladı loader ekranını göster
        $.ajax({
            type:'POST',
            url:'post.php',
            data: $('#header_top_form').serialize(),
            success:function(html){
                $('#loader_div').css("display", "none"); // ajax bitti loader ekranını gizle
            }
        }); 
    }
  • 16-02-2023, 11:36:08
    #7
    Hocam bunu swetalert ile yapmak daha sıkıntı, diğer arkadaşın dediği gibi loader tasarımı ile yapmanız daha mantıklı
  • 16-02-2023, 11:36:44
    #8
    Web Tasarım ve Yazılım
    ahmtcn37 adlı üyeden alıntı: mesajı görüntüle
    Ajax isteğinden veri gelince swal.close() yapıp dener misin
    Timer ı iptal edip değil mi?
  • 16-02-2023, 11:37:51
    #9
    bostanci96 adlı üyeden alıntı: mesajı görüntüle
    Timer ı iptal edip değil mi?
    Timer kalabilir. Close fonksiyonu direk force ile kapatabilir ama tam kullanımını hatırlamıyorum. Böyle olması lazımdı