Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

ajax isteklerinde karışma??

sorunum şöyle,
sayfada iki tane bölüm var yorum ve beğenme,
ikiside ajax la post ediliyor, ikiside ayrı fonksiyonlarda
fonksiyonlar bunlar;

function yorumGonder()
{
        $("#yorum_sonuc").ajaxStart(function(){
            $(this).html('<img src="../rsm/yukleniyor.gif" />');
        });
        
        jQuery.ajax({
            type:'POST',
            url:'guncelle/yorumkaydet.html',
            data:$('#form_yorum').serialize(),
            success:function(e){
            $('#yorum_sonuc').html(e)    
            }
        });
}

function begen_x()
    {

        $("#begen_sonuc").ajaxStart(function(){
            $(this).html('<img src="../rsm/yukleniyor.gif" alt="" title ="" />');
        });
        
        jQuery.ajax({
            type:'POST',
            url:'guncelle/begen.html',
            data:'blog_id='+blog_id+'&durum=begen&bgd='+bg,
            success:function(e){
            $('#begen_sonuc').html(e)

            }
        });

    }  



normalde çalışıyor ama beğenmeye tıklandıktan sonra yorum yapılırsa begenmedeki ajax start olayı çalışmaya başlıyor ve durmuyor, yani yükleniyor resmi begen_sonuc divinde görüntüleniyor.
tam terside oluyor, önce yorum yapıp sonra begenildiğinde bu seferde yorumdaki ajax start çalışıyor ve durmuyor.
Umarım anlatabildim, muhakkak bir yerde hatam var
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • Vedia adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    66 cevap - 21 soru
    Ben, kendi uygulamamda merkezi bir loading image kullanıyorum ve şu şekilde sorunsuz kullanıyorum:

    <img src='assets/loading.gif' id="ajax_loading_image" />
    



    		// Ajax çalıştığı sürece ekranda "Yükleniyor..." animasyonunu göster ve ajax bitince de gizle.
    		$('#ajax_loading_image').css("display", "none").ajaxStart(function() {	$(this).show()	}).ajaxStop(function() { $(this).hide(); }); 
    
    


    Sizdeki sorun şu: ikitane AjaxStart kullanmışsınız. Bu şu anlama geliyor: Ajax işlemi başladığı anda her ikisi de çalışmaya başlıyor.
    • fahrenhayt46 adlı üyenin fotoğrafı fahrenhayt46
      Dostum kusura bakma tam anlayamadım,
      evet iki tane ajax start kullandım ama farklı divleri içeriyor gerçi javascripte yabancıyım ajax start olayı her istekte çalışıyor da olabilir. Ama sorunu nasıl düzelteceğimi tam çıkaramadım, senin verdiğin kodları değiştirip "begen_x" ve "yorumgonder" fonksiyonlarının içine mi yazmam gerekiyor yoksa tek bir yerden mi kontrol etmeliyim, biraz daha açıklarsan memnun olurum.
      12 yıl önce yazılmış
    • Vedia adlı üyenin fotoğrafı Vedia
      success yazan kısımda, yani işinizin bittiği yerde ajaxStop çağırmanız gerekir.
      12 yıl önce yazılmış
    • fahrenhayt46 adlı üyenin fotoğrafı fahrenhayt46
      Yine olmadı, ya da ben yapamadım, bu yine iki yerde çıkıyor istek bitince de sonucu gösteren divler tamamen ortadan kalkıyor bu sefer de.
      JavaScripti bilmiyorum bir yerlerde halen yanlış yapıyor olabilirim.
      12 yıl önce yazılmış
    • Vedia adlı üyenin fotoğrafı Vedia
      Şu şekilde yaptığınızda istediğiniz gibi olur...

      function yorumGonder()
      {
              $("#yorum_sonuc").html('<img src="../rsm/yukleniyor.gif" />');       
              jQuery.ajax({
                  type:'POST',
                  url:'guncelle/yorumkaydet.html',
                  data:$('#form_yorum').serialize(),
                  success:function(e){
                  $('#yorum_sonuc').html(e)    
                  }
              });
      }
      
      function begen_x()
          {
      
              $("#begen_sonuc").html('<img src="../rsm/yukleniyor.gif" alt="" title ="" />');
              
              jQuery.ajax({
                  type:'POST',
                  url:'guncelle/begen.html',
                  data:'blog_id='+blog_id+'&durum=begen&bgd='+bg,
                  success:function(e){
                  $('#begen_sonuc').html(e)
      
                  }
              });
      
          }  
      
      12 yıl önce yazılmış
    • fahrenhayt46 adlı üyenin fotoğrafı fahrenhayt46
      :D ajax start ları kaldırınca oldu,
      çok teşekkür ederim ilginiz için.
      saatlerce bilg. başında oturmak iyi olmuyor, gördüğümü anlamaz oldum iyice :)
      12 yıl önce yazılmış

Cevaplar

Hiç cevap bulunamadı.