我为我的网站设置了一个php / javascript聊天程序,问题是我只想显示最后5条消息,然后5条之后的旧消息必须消失。这些消息是在前提中输入的。如何才能做到这一点?这就是我正在使用的所有代码
$(document).ready(function(){
cometApi.start({node:"/", dev_id:/ })
cometApi.subscription("simplechat.newMessage", function(event){
$("#web_chat").append('<pre><b style="font-size:15px">'+HtmlEncode(event.data.name)+'</b>: '+HtmlEncode(event.data.text)+'</pre>')
})
})
function HtmlEncode(s)
{
var el = document.createElement("div");
el.innerText = el.textContent = s;
s = el.innerHTML;
return s;
}
function send()
{
var name = $('#name').val();
var text = $('#text').val();
$.ajax({
url: "/fileadmin/chat/chat.php",
type: "POST",
data:"text="+encodeURIComponent(text)+"&name="+encodeURIComponent(name)
});
}
PHPCODE:
$comet = mysqli_connect($host, $user, $password, "/");
if(mysqli_errno($comet))
{
echo "Error:".mysqli_error($link);
}
$msg = Array( "name" => $_POST["name"], "text" => $_POST["text"] );
$msg = json_encode($msg);
$msg = mysqli_real_escape_string($comet, $msg);
$query = "INSERT INTO pipes_messages (name, event, message)" .
"VALUES('simplechat', 'newMessage', '".$msg."')";
mysqli_query($comet, $query);
if(mysqli_errno($comet))
{
echo "Error:".mysqli_error($comet);
}
else
{
echo "ok";
}
答案 0 :(得分:0)
您可以使用一个漂亮的小CSS选择器,然后在每个newMessage
事件中将它们删除,如下所示:
cometApi.subscription("simplechat.newMessage", function(event){
$("#web_chat").append('<pre><b style="font-size:15px">'+HtmlEncode(event.data.name)+'</b>: '+HtmlEncode(event.data.text)+'</pre>')
$('#web_chat > pre:nth-last-child(n+6)').remove()
})