AJAX verileri yeniden her X dakika / saniye, jQuery

2 Cevap php

Geçenlerde sisteme giriş kim bir günlük olan bir CMS programlanmış. Halen, bu veri Ajax ile bir jQuery UI sekme beslenir. Ben ana sayfada bir kenar çubuğu bu bilgileri koymak ve her 30 saniye (veya zaman bazı set dönemi) AJAX yoluyla yüklemek istiyorum.

Bunu nasıl yapıyor hakkında gitmek istiyorsunuz? PHP tepki json kodlanmış olması gerekiyor mu? AJAX ve JSON veri için oldukça yeni.

İşte ben şu anda kullanıcılar ayrıntıları çekmek için kullanıyorum PHP tabloda-

<?php
$loginLog = $db->query("SELECT name_f, name_l, DATE_FORMAT(lastLogin, '%a, %b %D, %Y %h:%i %p') AS lastLogin FROM user_control ORDER BY lastLogin ASC LIMIT 10");
while ($recentLogin = $loginLog->fetch()) {
echo $recentLogin['name_f'] . " " . $recentLogin['name_l'] . " - " . $recentLogin['lastLogin'];
}
?>

Teşekkürler! UPDATE

Tamam, bu ben şimdiye kadar .. ben şaşırıp kısmı nasıl JSON döngü ve kutunun içine girmek olduğunu budur. Bu sürece ben sadece bir sonuç kullanın ve [] 's değil temin ederim gibi çalışıyor. Ben sadece nedense çok kolay benim için gelmiyor, Ajax ve JSON öğreniyorum.

Javascript -

$(document).ready(function(){

                function refreshUsers(){

                    $.getJSON('json.php', function(data) {

                            for (var i = 0; i < data.length; i++) {

                                $("#loadHere").html('<p>' + data.name + ' ' + data.lastLogin + '</p>');

                            }

                });

            }

                var refreshInterval = setInterval(refreshUsers, 30 * 1000);

                refreshUsers();

            });

Benim PHP komut dosyası çıkışları nedir -

[{"name":"Joe Smith","lastLogin":"Fri, May 21st, 2010 08:07 AM"},{"name":"Jane Doe","lastLogin":"Fri, May 21st, 2010 07:07 AM"}]

Teşekkürler!

2 Cevap

PHP yan kullanın json_encode().

İstemci tarafında, kullanım $.getJSON():

function refreshUsers(){
  $.getJSON(url, postData, function (data, textStatus){
    // Do something with the data
  });
}

// Keep interval in a variable in case you want to cancel it later.
var refreshInterval = setInterval(refreshUsers, 30 * 1000);

Bu 2 ile, başlamak için bir şey olmalıdır. Bu fazla, sizin için çalışmak bize soran olurdu :)

(Onun en iyi yolu öznel olsun - Eğer ben onun para cezası söyleyebilirim sunduk kullanım durumda) basit yolu yapmak olacaktır:

var updateInterval = setInterval(function() {
  $('#whereIWantToDisplayIt').load('/thePathToThatScript.php');
},30*1000);

Her 30 saniyede, bu PHP komut dosyası çıkışını yük ve ID = whereIWantToDisplayIt ile elemanın içine çıktı vereceğini

Ama Seb'in cevabı tercih.