首先来看一下我已经实现的效果图:
消费者页面:(本篇随笔)
(1)会显示店主的头像
(2)当前用户发送信息显示在右侧,接受的信息,显示在左侧
店主或客服页面:(下一篇随笔)
(1)在左侧有一个列表 ,会显示所有与店主对话的顾客;该列表可以移动;有新消息时会提示;也可以清空该聊天记录
(2)点击列表里的顾客进入右边的对话框界面,显示与该顾客的聊天信息
在实现功能之前,来说一下我用到的两张表:
解释一下:bkid在此处没有用到;isok列是用来判断消息是否已读,未读为0;
现在,来说一下步骤:(分前台和后台两部分)
在这篇随笔中我们首先来说一下前台页面是如何实现的:(李四登录)
用session存取一下lisi;便于后面从user表中取数据
1、布局页面代码以及读取数据代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
<!--中间内容--> <div id= "zhongjian" > <div id= "kuangjia" style= "height: 550px;width: 620px; margin: 0px auto;border: 1px solid gainsboro;background-color: white;" > <div id= "neirong" style= "height: 400px;width: 600px;" > <div style= "height: 100px;width: 620px;background-image: url(../img/bj4.jpg);" > //取店主用户名,显示店主的头像和姓名<br> <?php $uid = $_session [ "uid" ]; $sql = "select * from users where uid='zhangsan'" ; $arr = $db ->query( $sql ); foreach ( $arr as $v ) { echo " <div style= 'height:100px;float:left;width:100px;float:left;' > <div style= 'border:2px solid grey;height:84px;width:84px;margin:7px auto; border-radius:10px;overflow:hidden' > <img src= '{$v[6]}' height= '80px' width= '80px' /> </div> </div> <div style= 'height:100px;width:500px;float:left;' > <div style= 'height:50px;width:500px;text-align:left;line-height:50px' > 亲爱的店主 </div> <div style= 'height:50px;width:500px;text-align:left;' >个性签名: <input type= 'text' placeholder= '不读书怎么对得起今天!' style= 'width:280px' > </div> </div> "; } ?> </div> <div style= "height: 300px;width: 620px;overflow: auto;overflow-x:hidden ;" ><br> //获取session里存取的uid; <?php $uid = $_session [ "uid" ]; $sql3 = "select * from users where uid='{$uid}'" ; $arr3 = $db ->query( $sql3 );<br> //从对话表里读取店主张三和李四所有的对话信息,并按对话时间顺序排序 $sql2 = "select * from duihua where uid='{$uid}' or jsid='{$uid}' order by dhtime" ; $arr2 = $db ->query( $sql2 ); foreach ( $arr2 as $n ) {<br> //如果是店主,则信息要显示在左侧 if ( $n [2]== 'zhangsan' ) { echo "<div style= 'height:100px;width:600px;' > <div style= 'height:100px;width:250px;float:left' > <div style= 'height:20px;width:250px;font-size:13px;padding-left:20px' > { $n [6]}</div> <div style= 'height:80px;width:50px;float:left' > <div style= 'height:50px;width:50px;margin:0px auto; border-radius:90px;overflow:hidden;' > <img src= '{$v[6]}' height= '50px' width= '50px' /> </div> </div> <div style= 'min-height:40px;width:200px;float:left;background-color:cornflowerblue; border-bottom-right-radius: 10px;border-top-right-radius: 10px;border-top-left-radius: 40px;border-bottom-left-radius: 40px;' > <p style= 'padding-left:20px; line-height:40px' > { $n [4]}</p> </div> </div></div>"; } <br> //如果是李四,则显示在右侧 if ( $n [2]== $uid ) { echo "<div style= 'height:100px;width:600px;margin-right:20px' > <div style= 'height:100px;width:250px; float:right' > <div style= 'height:20px;width:250px;font-size:13px;padding-right:20px' > { $n [6]}</div> <div style= 'height:80px;width:50px;float:right' > <div style= 'height:50px;width:50px;margin:0px auto; border-radius:90px;overflow:hidden;' > <img src= '{$arr3[0][6]}' height= '50px' width= '50px' /> </div> </div> <div style= 'min-height:40px;width:200px;float:right;background-color:pink; border-bottom-left-radius: 10px;border-top-left-radius: 10px;border-top-right-radius: 40px;border-bottom-right-radius: 40px;' > <p style= 'padding-left:20px; line-height:40px' > { $n [4]}</p> </div> </div></div>"; } } ?> </div> </div> <!--id= "neirong" --><br> <form role= "form" > <div class = "form-group" > <textarea class = "form-control" rows= "3" id= "words" ></textarea> //输入发送内容 </div> </form> <div id= "fs" style= "height: 50px; width: 600px;text-align: right; padding-right: 50px;" > <button type= "button" class = "btn btn-success fasong" >发送</button> //点击按钮发送 </div> </div> </div> <!--id=zhongjian--> |
实现效果:
2、点击发送时的ajax代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
<script> $( ".tc" ).click( function (){ $( "#kuangjia" ).show(); }) $( ".fasong" ).click( function (){ var nr=$( "#words" ).val(); $.ajax({ url: "qt-speak-cl.php" , data:{words:nr}, type: "post" , datatype: "text" , success: function (data){ if (data==1) { window.location.href= "qt-dh.php" rel= "external nofollow" rel= "external nofollow" ; } else { alert( "发送内容不能为空!" ); } } }) }) $( "#dh" ).click( function (){ $.ajax({ url: "qt-yidu-cl.php" , datatype: "text" , success: function (data){ // alert(data); window.location.href= "qt-dh.php" rel= "external nofollow" rel= "external nofollow" ; } }) }) </script> |
3、qt-speak-cl.php页面:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?php session_start(); require "dbda.class.php" ; $db = new dbda(); $uid = $_session [ "uid" ]; $words = $_post [ "words" ]; $chtime = date ( "y-m-d h:i:s" ,time()); $jieshou = "zhangsan" ; if (! empty ( $words )) { $sql = "insert into duihua values ('','{$jieshou}','{$uid}','','{$words}',0,'{$chtime}')" ; echo $db ->query( $sql ,0); <em id= "__mcedel" >} else { echo "发送内容不能为空!" ; } ?> </em> |
如果发送内容为空,则会提示“发送内容不能为空!”
前台页面会随不同用户登录显示不同的信息;让王五登录看看:
以上所述是小编给大家介绍的php+mysql+ajax实现淘宝客服或阿里旺旺聊天功能(前台页面),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://www.cnblogs.com/chenguanai/p/7018835.html