MySQL テーブルから一度に 1 つずつ、アクティブなメッセージを表示するメッセージ ボックスを作成しようとしています。データベース内のアクティブなメッセージはいくつでもよいため、div がいくつあるかはわかりません。今、必要な div を ajax タイマーと php スクリプトで出力しました。このタイマーは、新しいメッセージをチェックするために 20 秒ごとにデータベースにクエリを実行し続けます。私のphpスクリプトは、次のようなdivを出力します:
include 'status.php';
$strings = Status::messages();
$i = 1;
foreach($strings as $string){
print '<div id="'.$i.'">'.$string.'</div>';
$i++;
}
これは、1 から x までの id を含む div を出力します。今、これらの div の 1 つを一度に表示できる JavaScript 関数が必要です。div の総数を取得するには、次のようにします。
var top_level_div = document.getElementById('messagecontainer');
var count = top_level_div.getElementsByTagName('div').length;
私はここから行く方法を理解できません。
編集:
メッセージをロードする ajax タイマーは次のとおりです。
ajaxTimer8 = new Ajax.PeriodicalUpdater('messagecontainer', 'includes/messagereloader.php', {
method: 'get', frequency: 20, decay: 1,
onSuccess : function() {
pollCounter = 11;
}
});