Тръгнах да си правя едно малко скрипче което да показва последните 5 коментара, и с jquery да праща последното id на коментара към файл check.php които да прави заявка към дб-то и да проверява за нови,ако има нови да echo един див , които див е даден като условие в jquery ако съществува да презарежда файла.
Цялата тази игра успях да я докарам на 95% и накрая точно когато се опитам да сравнява id-тата при единия load успява и при следващия се прецаква заради php(понеже е константа).
За да видите какво говоря:
index.php
newcomments.php
Целия проблем е това lastID се взима от div-a със class jquery_latest_id а там е с php която е константа (примерно 10) и при изпълнението на jquery единия път успява да извлече новите резултати , а при следващия когато вече id-то трябва да е по-голямо защото имаме нови резултати (примерно 11) при второто изпълнение на функцията (през 5 секунди е дадено за демо) то реално връща пак старото id 10 и презарежда стария резултат,и после пак става 11 и после 10 и така върти постоянно...
Опитах се да го"предефинирам" и да го взима от check.php но не става,опитах и със .hide().fadeIn() да презаредя самия файл newcomments.php като така се надявах да се зареди новото id във
но си стой старото,при самото зареждане на сайта.
checker.php
ps:Има някакъв вариант май със JSON да се върне резултата и директно да се сравни в jquery без повече да "търси " в php newcomments.php а този json да идва от checker.php
Ако може да дадете едно рамо
Цялата тази игра успях да я докарам на 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>
Опитах се да го"предефинирам" и да го взима от 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
Ако може да дадете едно рамо