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

Php ve Ajax iletişimi ?

Merhaba arkadaşlar, php dilini kullanarak anlık uyarılar verebilen site içi mesajlaşma sistemi yapmayı planlıyorum. Örneğin x kullanıcısının sistemde 5 tane okunmamış kayıtlı mesajı olsun. X kullanıcısı sıradan programlanmış bir sayfaya giriş yaptığında
echo mysql_num_rows($sorgu);


gibi bir kodla kişinin okunmamış mesaj sayısını 5 olarak ekrana yazdırabiliyorum. Asıl anlatmak istediğim durum şuki kullanıcıya bu süre içerisinde yeni bir mesaj gelirse sayfayı yeniletmeden ekrandaki 5 sayısını son sayıyla değiştirip sesli bir uyarı nasıl verdirebilirim. Anahtar sözcüğün ajax olduğunu düşünüyorum fakat bu durumla ilgili denenebilir bir uygulama bulamadım. Bahsettiğim durum facebook yorum sistemi, gmail vb. yerlerde var. Bilgisi veya fikri olan kişiler kaynak veya yol gösterirlerse çok memnun olurum.
+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ı
    10 yıl önce yazılmış
    66 cevap - 21 soru
    Bu iş çok kolay, bir timer ile düzenli bir ajax çağrısı yapıp sonucu ekrana yazdıracaksın. İşte bunun için yapman gerekenler:

    HTML sayfanda yapılacaklar:
    <div id="MesajAdedi"></div>
    


    javascript tarafında yapılacaklar: (Bakınız: http://jqapi.com/#p=jQuery.ajax )
    setTimeout("mesajKontrolu()", 30000); // 5 dakikada bir mesajKontrolu() fonksiyonunu çağır
    function mesajKontrolu() {
     $.ajax({
       type: "POST",
        url: "mesajkontrol.php",
       data: "name=John&location=Boston",
        success: function(cevap){
          $("MesajAdedi").html( cevap );
       }
     });
    }
    



    PHP tarafında yapılacaklar: ( mesajkontrol.php )
      $link = mysql_connect("localhost", "mysql_user", "mysql_password");
      mysql_select_db("database", $link);
      $result = mysql_query("SELECT * FROM table1", $link);
      $num_rows = mysql_num_rows($result);
      echo "$num_rows Adet mesajınız var";
      return;
    
    • huseyiniskender adlı üyenin fotoğrafı huseyiniskender
      Cevabınız için çok teşekkür ederim. Sanırım vermiş olduğunuz javascript kodunun öncesinde jquery kütüphanesini çağırmak gerekli, kodu en kısa süre içerisinde deneyeceğim. Bu arada yenileme süresini 1 dk veya daha alt bir sürede tutsam en fazla 1000 kişinin kullanacağı bir sistemde performans açısından bir sorun oluşur mu. Yeniden çok teşekkür ederim.
      10 yıl önce yazılmış
    • Vedia adlı üyenin fotoğrafı Vedia
      Bu sorunun cevabı SQL sorgunuzun hızına bağlı. join içermeyen ve indeksli alanlardan gelen bir cevap sistemi yormaz.

      Bir de eşzamanlı kullanıcı sayısına bakmak gerek: 1000 kullanıcı 1 günde mi? herhangi bir "an"da 1000 kullanıcı mı? gibi.
      10 yıl önce yazılmış
    • huseyiniskender adlı üyenin fotoğrafı huseyiniskender
      Vedia, verdiğin kod ipucu verdi ve durumu çözdüm, fakat verdiğin koddaki gibi denenirse çalışmayacaktır, setTimeout fonksiyonu sayfa yenilendikten sonra bir kez çalışıp bir daha çalışmıyor bunun yerine setInterval yazmak yeterli oldu, birde 5 dk'nın süresi 30000 değil 300000 imiş. Kodların örnek son halini altta paylaşıyorum, yardım arayan kişilere kaynak olması için. Sanırım cevap verirken biraz acele davrandın ve yazım hatası oluştu, tekrardan yardımcı olduğun için teşekkür ederim.

      mesajKontrolu();	
      setInterval("mesajKontrolu()", 300000);
      function mesajKontrolu() {
      $.ajax({
      	type: "POST",
      	url: "cevap.php",
      	data: "istek=gelen_mesajlar",
      	success: function(ajaxCevap) {
      		$("div#MesajAdedi").html(ajaxCevap);
      	}
      });
      
      }
      
      10 yıl önce yazılmış
    • Vedia adlı üyenin fotoğrafı Vedia
      SAYIN HUSEYINISKENDER,

      SORUNUZA BİR CÜMLELİK CEVAP YETERLİ OLACAKTI. NE DEMİŞTİM CEVABIMDA:

      "Bu iş çok kolay, bir timer ile düzenli bir ajax çağrısı yapıp sonucu ekrana yazdıracaksın. "

      BUNULA YETİNMEYİP, BU SİTEYE SORMUŞ OLDUĞUNUZ SORU İÇİN ZAMAN AYIRDIM VE DETAYLI BİR CEVAP YAZDIM, DAHA DA FAYDALI OLABİLMEK ADINA O KODLARI DA TEK TEK MESAJIMA EKLEDİM.


      ANCAK, HADDİNİZİ AŞARAK, NEZAKETTEN YOKSUN VE KENDİZİ BEĞENMİŞ ŞEKİLDE YAPTIĞINIZ TERBİYESİZLİK KARŞISINDA SESSİZ KALMANIN DOĞRU OLMADIĞI DÜŞÜNCESİYLE BU SATIRLARI YAZIYORUM:

      NE SİZ BENİ TANIYORSUNUZ NE DE BEN SİZİ, YAPILAN ŞEY SADECE BİLGİ PAYLAŞIMI VE YARDIMCI OLMAK ADINA BİLABEDEL DESTEK HİZMETİ.

      HAL BÖYLE İKEN; BU İŞİ SİZE YOL GÖSTERMEYE ÇALIŞAN BİRİSİNE UKALALIK YAPACAK KADAR İYİ BİLİYORDUNUZ DA NEDEN BU SİTEDEN SORU SORDUNUZ?

      SİZİN SORUNUZUN YAYINLANMASININ ARDINDAN DAKİKALAR İÇİNDE CEVAP VERİLMESİNE TEŞEKKÜR ETMENİZ GEREKİRKEN, "Sanırım cevap verirken biraz acele davrandın ve yazım hatası oluştu" ŞEKLİNDEKİ DEĞERLENDİRMENİZİ DE EN HAFİF TABİRİYLE EDEPSİZLİK OLARAK DEĞERLENDİRİYORUM.

      NOT: BU MESAJI BİLEREK VE İSTEYEREK BÜYÜK HARFLERLE YAZIYORUM.
      10 yıl önce yazılmış
    • huseyiniskender adlı üyenin fotoğrafı huseyiniskender
      SAYIN VEDİA,

      SİZE YAZDIĞIM HER CEVAPTA, YARDIMCI OLDUĞUNUZ İÇİN TEŞEKKÜR ETTİM VE MİNNETTARLIĞIMI BELİRTTİM HALADA ÖYLE. HAL BU İKEN HADDİMİ AŞTIĞIMI, NEZAKETTEN YOKSUN OLDUĞUMU VE TERBİYESİZ OLDUĞUMU SÖYLEYEREK BÜYÜK BİR HAKSIZLIK EDİYORSUNUZ. BANA YARDIMCI OLMAYA ÇALIŞAN BİR İNSAN KARŞISINDA ALDIĞIM TERBİYE NEDENİYLE SAYGI DUYAR VE TEŞEKKÜR EDERİM. YAZDIĞIM HER CEVAPTADA BUNU BELİRTTİM. BU İŞİ BİLMEDİĞİM İÇİN SORU SORDUM VE VERMİŞ OLDUĞUNUZ CEVAPTAN YOLA ÇIKARAK ÇÖZÜMÜN EN UYGUN HALİNİ PAYLAŞTIM BU DURUMU KENDİNİ BEĞENMİŞLİK VE UKALALIK OLARAK TANIMLAMIŞSINIZ. BEN CEVAP YAZARKEN SİZİ KÜÇÜMSEMEK KENDİMİ YÜKSELTMEK GİBİ BİR GAFLET İÇERİSİNDE DEĞİLDİM BANA YARDIM EDEN BİR İNSAN KARŞISINDA OLAMAMDA, İÇTEN VE MİNNETTAR BİR VAZİYETTE, İÇİNDE KÖTÜLÜK BARINDIRMAYAN SAF BİR DÜŞÜNCEYLE CEVAP YAZDIM. BU DURUMUN TARAFINIZDAN UKALALIK VE KENDİNİ BEĞENMİŞLİK OLARAK ALGILANMASI BANA YAPILAN BİR HAKSIZLIKTIR. AİLEMDEN ALDIĞIM TERBİYE VE DİĞER BÜYÜK DEĞERLERLE BU YAŞIMA GELDİM KİMSEYE KENDİMİ ÜSTÜN TUTMADIM SÖYLEDİĞİNİZ YAPAY TATMİNLERLE(UKALALIK,KENDİNİ BEĞENMİŞLİK VB.) KENDİMİ KANDIRMADIM. HAL BU İKEN BU İTHAMLARA MARUZ KALMAK BANA YAPILAN BÜYÜK BİR HAKSIZLIK. SARFETTİĞİNİZ SÖZLER ÇOK ÜZÜCÜ.


      "SİZİN SORUNUZUN YAYINLANMASININ ARDINDAN DAKİKALAR İÇİNDE CEVAP VERİLMESİNE TEŞEKKÜR ETMENİZ GEREKİRKEN" DİYE BAŞLAYAN CÜMLENİZDE BÜYÜK BİR HAKSIZLIK EDEREK BENİ BİR İNSANOĞLUNA UCUZCA SÖYLENMEYECEK BİR DEĞERDEN YANİ EDEPTEN YOKSUN OLMAKLA DEĞERLENDİRMİŞSİNİZ. SİZE YAZDIĞIM CEVAPLARI TEKRARDAN OKURSANIZ HER DEFASINDA TEŞEKKÜR ETTİĞİMİ GÖRECEK VE HAKSIZLIK ETTİĞİNİZİN FARKINA VARACAKSINIZ. ALDIĞINIM TERBİYE NEDENİYLE BANA BÖYLE AĞIR LAFLAR SÖYLEYEN BİR KİŞİ KARŞISINDA SAKİN KAFAYLA EDEBİMİ TAKINIRIM VE HAKSIZLIK ETTİĞİNİN FARKINA VARMASINI BEKLERİM.

      BEN EDEPSİZ, TERBİYESİZ, UKALA, KENDİNİ BEĞENMİŞ AŞŞAĞILIK BİR İNSAN DEĞİLİM !!!
      10 yıl önce yazılmış
    • Vedia adlı üyenin fotoğrafı Vedia
      Bu konuyu polemiğe açacak değilim. Benim için kapanmış bir konudur. Bir de şöyle düşünün lütfen: "Bu adam böyle yazmış, acaba benim yazdıklarımda hiç yanlış bir şey yok mu?"
      10 yıl önce yazılmış
    • huseyiniskender adlı üyenin fotoğrafı huseyiniskender
      Bende polemik oluşturarak peşinde değilim, fakat bana böyle ağır laflar söyleyen biri karşısındada sessiz kalamam. Benim için kapnamış bir konu değil çünki sarfettiğiniz sözleri haketmediğimi düşünüyorum. Yazdıklarım kendine yardım etmeye çalışan bir insana söylenmiş en içten saf düşünceler. Fakat sizin yazdıklarınız sıradan basite indirgenecek sözler değil. Yazdıklarımda karşımdaki insanı aşşağılayıcı bir söz kullanmadım aksine tanımadığı insanlara yardım etme gibi iyi bir özelliğe sahip insanı övücü sözler kullandım. Aynı insanın bana ağır ithamlarda bulunması beni çok üzdü. Belirtmek istedim.
      10 yıl önce yazılmış

Cevaplar

Hiç cevap bulunamadı.