Buenas
estoy haciendo una web con comentarios y el tiempo transcurrido de cada comentario, lo que deseo actualizar cada 5 segundos es el tiempo transcurrido de cada comentario usando AJAX, pero al imprimir los datos, el tiempo solo se muestra en el ultimo resultado del WHILE, no en todos..
Este es el código que uso:
--------------------------------------- index.php ---------------------------------------
<script src="ajax.js"></script>
<?php
//include("conec.php");
$comentarios=mysql_query("SELECT * FROM comentarios ORDER BY id DESC",$link);
while($rowcomentarios = mysql_fetch_array($comentarios)) { ?>
codigo...
<!-- Aca sigue el tiempo !-->
<div id="time"><div name="timediv" id="timediv"></div></div>
<?php } ?>
--------------------------------------- ajax.js ---------------------------------------
var seconds = 5; // el tiempo en que se refresca
var divid = "time"; // el div que quieres actualizar!
var url = "tiempo.php"; // el archivo que ira en el div
function refreshdiv(){
// The XMLHttpRequest object
var xmlHttp;
try{
xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("Tu explorador no soporta AJAX.");
return false;
}
}
}
// Timestamp for preventing IE caching the GET request
var timestamp = parseInt(new Date().getTime().toString().substring(0, 10));
var nocacheurl = url+"?t="+timestamp;
// The code...
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState== 4 && xmlHttp.readyState != null){
document.getElementById(divid).innerHTML=xmlHttp.r esponseText;
setTimeout('refreshdiv()',seconds*1000);
}
}
xmlHttp.open("GET",nocacheurl,true);
xmlHttp.send(null);
}
// Empieza la función de refrescar
window.onload = function(){
refreshdiv(); // corremos inmediatamente la funcion
}
--------------------------------------- tiempo.php ---------------------------------------
function tiempo_transcurrido($fecha) {
if(empty($fecha)) {
return "No hay fecha";
}
$intervalos = array("segundo", "minuto", "hora", "dí*a", "semana", "mes", "año");
$duraciones = array("60","60","24","7","4.35","12");
$ahora = time();
$Fecha_Unix = strtotime($fecha);
if(empty($Fecha_Unix)) {
return "Fecha incorrecta";
}
if($ahora > $Fecha_Unix) {
$diferencia = $ahora - $Fecha_Unix;
$tiempo = "Hace";
} else {
$diferencia = $Fecha_Unix - $ahora;
$tiempo = "Dentro de";
}
for($j = 0; $diferencia >= $duraciones[$j] && $j < count($duraciones)-1; $j++) {
$diferencia /= $duraciones[$j];
}
$diferencia = round($diferencia);
if($diferencia != 1) {
$intervalos[5].="e"; //meses... la magia del español
$intervalos[$j].= "s";
}
return "$tiempo $diferencia $intervalos[$j]"; }
?>
<p class="social-time-publication"><?php echo tiempo_transcurrido("2014-01-14 07:58:00"); ?> <i class="icon-globe"></i></p>
Ese sería el codigo
Gracias de ante mano