ajaxを使用してデータベースから新しい行を取得しようとしています。Facebookのチャットで起こるようなことです。私がやっていることは、2 秒ごとに ajax を使用してデータベースから最後の 10 行を取得し、ユーザーが見ていない行を表示しようとすることです。IDと名前の2つの列があります。onordered リストを作成し、各 li 要素の ID をデータベースの ID に設定しました。各 li は行です。次に、最後の li 要素の ID を取得して、データベースの ID が大きいかどうかを確認します。大きい場合は、ID と名前を含む新しい li を追加します。しかし、何らかの理由で、2 秒ごとに 10 行全体を追加するだけです。私は何を間違えましたか?これは私が使用しているコードです。
<ol id="output"><li id="1">test</li></ol>
<script id="source" language="javascript" type="text/javascript">
function reloadw()
{
$.ajax({
url: 'api.php',
data: "",
dataType: 'json',
success: function(rows)
{
for (var i in rows)
{
var row = rows[i];
var lastId = $('ol#output li').attr('id');
var id = row[0];
var vname = row[1];
if(id > lastId){
$('#output').append("<li id="+id+"><b>id: </b>"+id+"<b> name: </b>"+vname+"</li>");
}}
}
});
} setInterval(reloadw,2000);
これは、データベースからデータを取得する際に使用するものです
$result = mysql_query("SELECT * FROM $tableName ORDER BY id");
$data = array();
for($i=0;$i<=9;$i++){
$row = mysql_fetch_row($result);
$data[] = $row;
}
echo json_encode( $data );