Проверка и обновяване на информация само при нови записи

Hous

Registered
Тръгнах да си правя едно малко скрипче което да показва последните 5 коментара, и с jquery да праща последното id на коментара към файл check.php които да прави заявка към дб-то и да проверява за нови,ако има нови да echo един див , които див е даден като условие в jquery ако съществува да презарежда файла.
Цялата тази игра успях да я докарам на 95% и накрая точно когато се опитам да сравнява id-тата при единия load успява и при следващия се прецаква заради php(понеже е константа).

За да видите какво говоря:

index.php
Код:
include("newcomments.php");
?>
<div id="newcomments"></div>


newcomments.php
Код:
<?
//zaqvka za poslednite 5 komantara
....
while(){
}

//zaqvka za id-to na posledniq komentara
.... limit 1
while(){
echo "<div class='jquery_latest_id' id='".$red4e['comment_id']."'></div> ";
}
?>

<script type="text/javascript">

var auto_refresh = setInterval(
function ()
{	
	var lastID = $('.jquery_latest_id').attr('id');
	$('#newcomments').load('checker.php?last_id=' + lastID);
		if ($('.checker_latest_id').length > 0){
			$('#newcomments').load('newcomments.php').hide().fadeIn();
		}
}, 5000);

</script>
Целия проблем е това lastID се взима от div-a със class jquery_latest_id а там е с php която е константа (примерно 10) и при изпълнението на jquery единия път успява да извлече новите резултати , а при следващия когато вече id-то трябва да е по-голямо защото имаме нови резултати (примерно 11) при второто изпълнение на функцията (през 5 секунди е дадено за демо) то реално връща пак старото id 10 и презарежда стария резултат,и после пак става 11 и после 10 и така върти постоянно...
Опитах се да го"предефинирам" и да го взима от check.php но не става,опитах и със .hide().fadeIn() да презаредя самия файл newcomments.php като така се надявах да се зареди новото id във
Код:
<div class='jquery_latest_id' id='".$red4e['comment_id']."'></div>
но си стой старото,при самото зареждане на сайта.

checker.php
Код:
$lastid=$_GET['last_id'];

if (empty($lastid)) { echo "nqmame get";}

$queryy=mysql_query("select comment_id from comments  where comment_id > ".$lastid." order by comment_id DESC");//
while($row4ence=mysql_fetch_array($queryy)){
 echo "<div class='checker_latest_id' id='".$row4ence['comment_id']."'></div> ";
}


ps:Има някакъв вариант май със JSON да се върне резултата и директно да се сравни в jquery без повече да "търси " в php newcomments.php а този json да идва от checker.php
Ако може да дадете едно рамо :)
 
Здравей ! Започнах да чета, но ме хвана мързел :D . Мисля, че това ще ти свърши работа или поне би могло да те насочи Цък
 
След близо 4 часа игра и ядове не мога да не се похваля:
Код:
<script type="text/javascript">
$('#whatisnew').load('whatisnew.php');//load for first time ,we dont need 10 sec wait interval
var auto_refresh = setInterval( function (){
$('#whatisnew').load('whatisnew.php', function(){ 
var l_id = $('.whatisnew_id').attr("id");
	$("#loadnewhere").load("checker.php?last_id="+l_id , function(loadafterchecker) {
				if ($("#wehavenewitem").length > 0){
				$("#whatisnew").load("whatisnew.php").fadeIn();
				}
			 });
			 });
	}, 10000);
</script>
оказаха се няколко логически проблема и вместо " съм писал на 2 места '
:X
 

Back
Горе