jQuery: Bir `
` Auto-Yenileniyor

3 Cevap php

Ben sorun bu <div> otomatik olarak jQuery kullanarak güncellemek için alıyorum yaşıyorum. Bu aslında sayfa, her iki saniyede bir yenilemek gerekir chat özelliği bulunuyor. Ben hayır şans ile bu çeşitli sapmalara çalıştı, bu yüzden tamamen farklı şekilde yeniden karşılama daha fazladır ettik.

jQuery code:

function updateChat() {
    $.get("chat_data.php", function(data) {
        $("div#chattable").html(data);
    });

    window.setTimeout("updateChat();", 2000);
}

$(document).ready(function() {
    updateChat();
});

İşte chat_data.php gelen verileri alır <div> kod. Bu güncelleme alınmalıdır:

<div id="chattable">
    <?php include("js/chat_data.php"); ?>
</div>

chat_data.php:

<?php foreach($query->result() as $row):
    echo "<div class='chatrow'>";
    echo "<div class='chattime'>".date("[M.d] g:ia",strtotime($row->time))."</div>";
    echo "<div class='chatnamematch'>[".$row->name."]</div>";
    echo "<div class='chatbody'>".$row->body."</div>";
    echo "</div>";
endforeach; ?>

3 Cevap

Alacağınız hata, bir Call to a member function result() on a non-object in /var/www/js/chat_data.php on line 1 değişkeni $query doğru ayarlanmış olması anlamına gelir. Eğer CodeIgniter kullanarak söyledi, bu yüzden, ajax_data.php bulunan dosya hangi klasörde olduğunu? Başvuru / kontrolörleri?

Çalışması gerektiği gibi her şey görünüyor. Doları URL. Yerine "chat_data.php" of "js / chat_data.php" olması gereken olsun mu?

Sadece zaten AJAX üzerinden yüklemek için gidiyor çünkü Ayrıca ben div dışarı dahil php alacaktı.

Düşünce ve alternatif bir kod örnek bir çift. Bu senin sorunun nerede olduğunu söylemek zordur, bu yüzden bu sadece bir kaç fikir.

  • Yerine yeniden yürütmek için javascript zamanlayıcı kullanarak sizin PHP bekleyen hareket olabilir

  • Basit jQuery.load () yöntemini kullanarak deneyin.

    function updateChat() {
    
    
     $("#chattable").load("chat_data.php", function() { updateChat(); });
    
    
    }
    

PHP tarafında,

  sleep(2); // sleep for two seconds before returning output

Etkisi benzer, ancak bunu biraz kolaylaştırır. Çıkış dönene kadar updateChat () fonksiyonu denir.

Peki, sadece bir fikir. Bu doğru çözüm olduğunu, ancak bu (js zamanlayıcı değişken yaptırmayı) sizin sorunları yalıtmak yardımcı olabilir emin değil.