我有一个包含四行的表(时间,名称,文本和chat_id)
time | name | text | chat_id
------------------------------+---------------+--------------+---------
2017-03-25 13:15:02.70061+00 | James Douglas | Hello world! | 478
(1 row)
这是插入到数据库的插入东西(工作正常):
$db->perform("insert into chat(name,text) values($1,$2)",$_SESSION['name'],$_POST['text']);
以下是将页面上的数据显示为聊天消息的内容:
$('#chatbox').append('<div><p><b>'+v.name+'</b> - <span>'+v.text+'</span><span style="display: inline-block; float: right;"><small>('+v.timee+')</small></span></div>');
和退出消息:
$db->perform("insert into chat(name, text) values($1,$2)",$_SESSION['name'],' has left the chat session');
所有这些大部分工作正常,聊天消息如下:
James Douglas - Hello world! (星期六13:15)
不幸的是,注销消息如下所示:
詹姆斯道格拉斯 - 已离开聊天会话(星期六13:26)
我将如何使注销消息看起来像这样?
(大概是编辑这两个)
$('#chatbox').append('<div><p><b>'+v.name+'</b> - <span>'+v.text+'</span><span style="display: inline-block; float: right;"><small>('+v.timee+')</small></span></div>');
$db->perform("insert into chat(name, text) values($1,$2)",$_SESSION['name'],' has left the chat session');
提前致谢!
答案 0 :(得分:1)
我认为你的做法是错误的。您应该将文本消息与操作消息分开。操作消息可以是所有消息somebody joined/left/changed nickname etc
。您可以在数据库中添加一个字段,如:
time | name | text | chat_id | type
------------------------------+---------------+--------------+---------+---------
2017-03-25 13:15:02.70061+00 | James Douglas | Hello world! | 478 | text
------------------------------+---------------+--------------+---------+---------
2017-03-25 13:15:12.70061+00 | James Douglas | 1 | 479 | action
然后有另一个表格,您可以将动作ID与各自的文本相关联,如:
id | text
----------+-------------------------
1 | User left the channel
----------+-------------------------
2 | User joined the channel
因此,当您尝试打印行时,您可以为不同类型的文本使用不同的css类
$('#chatbox').append('<div class="text-type-'+v.type+'"><p><b>'+v.name+'</b> - <span>'+v.text+'</span><span style="display: inline-block; float: right;"><small>('+v.timee+')</small></span></div>');