Programé un CMS que tiene un registro de quién ha iniciado sesión recientemente en el sistema. Actualmente, estos datos se envían a una pestaña jQuery UI a través de Ajax. Me gustaría poner esta información en una barra lateral en la página principal y cargarla a través de AJAX cada 30 segundos (o un período de tiempo determinado).Recargar datos AJAX cada X minutos/segundos, jQuery
¿Cómo voy a hacer esto? ¿La respuesta PHP necesita ser codificada JSON? Soy bastante nuevo en los datos de AJAX y JSON.
Aquí es el PHP Actualmente estoy usando para tirar de datos de los usuarios mesa-
<?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'];
}
?>
Gracias! ACTUALIZACIÓN
Vale, esto es lo que tengo hasta ahora .. la parte que estoy atascado en es la forma de bucle a través de JSON y lo inserta en la caja. Funciona bien siempre que use solo un resultado y asegure que no está en []. Estoy aprendiendo Ajax y JSON, por alguna razón no me llega demasiado fácilmente.
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();
});
Lo que mis salidas de script PHP -
[{"name":"Joe Smith","lastLogin":"Fri, May 21st, 2010 08:07 AM"},{"name":"Jane Doe","lastLogin":"Fri, May 21st, 2010 07:07 AM"}]
Gracias!
Gracias por su ayuda! Actualicé mi publicación original con lo que tengo hasta ahora. Atascado en intentar recorrer lo que pasa en JSON: soy nuevo en ambos loops en Javascript/jQuery, Ajax y JSON. ¡Gracias de nuevo! – NightMICU
¡Me alegro de poder ayudar! Si esta es la respuesta correcta, marque como aceptado para que otros con el mismo problema sepan cómo resolverlo. Con respecto al bucle, recuerda lo que tengas en PHP y codifica como JSON se comportará exactamente igual en el otro lado: si se trata de un objeto ab, puedes acceder a las propiedades en JS usando el operador '.'; si se tratara de una matriz, simplemente itere como lo haría en casi el lenguaje; 'datos [i]'. Tenga cuidado con los mapas en PHP: se convierten en objetos en JSON. – Seb
Bien, entonces pude descifrar cómo recorrer los datos de JSON y agregarlos al DIV apropiado usando .appendTo(). Pero lo que necesito es cargar los resultados de la tabla MySQL e insertarlos en la barra lateral DIV cada X segundos. El método de Mailslut en realidad parece ser mejor para esto: es simple recorrer la tabla con PHP e insertar ese HTML en el DIV. Entonces, mi pregunta: ¿cuál es la ventaja de JSON vs $ .load() para esta aplicación? ¿Cómo podría seguir usando JSON y agregar todos los resultados de la tabla al DIV sin agregarlos cada vez? ¡Gracias! – NightMICU