オンライン ユーザーを表示するコア モジュールがあります。既にページにアクセスしていて、新しいユーザーがログインしている場合は、ページを更新するまで表示されません。ホールページを更新せずにユーザーに表示したい。インターバルでリフレッシュする特定のdivを作成することを考えていました。
<div id="cusers">
<?php $i = 0; foreach($names as $name) : ?>
<?php echo "<span style='color:". $colors[$i % 6]."'>".$name->username."</span>"; $i += 1;?></a>,
<?php endforeach; ?></div>
上記のコードでは、たとえば ajax を使用して #cusers が 5 秒ごとに自動更新されるようにします。それを達成する方法はありますか?
私は次のことを試しました:
<script type="text/javascript">
var refreshId = setInterval(function()
{
jQuery('#cusers').html('<?php $i = 0; foreach($names as $name) : ?><a href="index.php/forum/profile/<?php echo (int) $name->userid; ?>"><?php echo "<span>".$name->username."</span>"; $i += 1;?></a>,<?php endforeach; ?>');
}, 3000);
</script>
これによりスクリプトが再実行されますが、データベース セッションから新しい情報は取得されないため、最初にページを読み込んだときと同じユーザーが表示されるだけです。