0

PHP、SQL、JavaScriptを使用してチャットを実装しています。window.location.replace('chatlog.php')を使用して同じファイルをリロードすることにより、新しいメッセージをチェックしています。そのため、ページは間隔ごとに自分自身にリダイレクトされます。メッセージの数が増えると、横にスクロールバーが表示されます。ページをリロードしているときに、最後に投稿されたメッセージを表示するためにスクロールする必要がありました。これは、更新が難しい場合です。ページがリロードされても最後に投稿されたメッセージが表示されるようにコードを作成するにはどうすればよいですか?

Some part of the chat.php file is as below

while($record=$mysql_fetch_array($sql))
{
print "<font color="brown">$record[firstname]:</font><font color="black">$record[message]</font>";
}
<script>
setTimeout("window.location.replace('chatlog.php')",2000);
</script>

これを解決するためにAJAXを使用できますか?もしそうなら、どのようにそれを行うのですか?

別の質問があります。タイムスタンプをSQLテーブルに年月(数値)として保存しています-日付時間:分:秒たとえば、月の日付で午前/午後に表示したい(2012年4月23日午後5時)これに変換するにはどうすればよいですか? ?変換するphp関数はありますか?助けてください !!!!!

4

1 に答える 1

0

最も簡単な解決策は、<a name="msgID_$id">...</a>各メッセージに名前アンカーを配置することです。例:

<a name="msgID_1">msg 1</a> ...
<a name="msgID_2">msg 2</a> ...
etc...
<a name="msgID_20">msg 20</a> ...

次に、ページにリストした最後のメッセージIDに対応するアンカーを持つ更新を埋め込みます。

example.com/msgs.php#msgID_20

ページが更新されると、ブラウザはそのメッセージに自動スクロールし、新しい更新のアンカーには、代わりに最新のメッセージのIDが割り当てられます(例:#msgID_25)。

于 2012-04-24T00:46:56.477 に答える