PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)


Posted in PHP onJune 16, 2017

首先来看一下我已经实现的效果图:

消费者页面:(本篇随笔)

(1)会显示店主的头像

(2)当前用户发送信息显示在右侧,接受的信息,显示在左侧

PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)

店主或客服页面:(下一篇随笔)

(1)在左侧有一个列表 ,会显示所有与店主对话的顾客;该列表可以移动;有新消息时会提示;也可以清空该聊天记录

(2)点击列表里的顾客进入右边的对话框界面,显示与该顾客的聊天信息

PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)

 在实现功能之前,来说一下我用到的两张表:

PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)

 解释一下:bkid在此处没有用到;isok列是用来判断消息是否已读,未读为0;

现在,来说一下步骤:(分前台和后台两部分)

在这篇随笔中我们首先来说一下前台页面是如何实现的:(李四登录)

PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)

用session存取一下lisi;便于后面从user表中取数据

1、布局页面代码以及读取数据代码:

<!--中间内容-->
 <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-->

实现效果:

PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)

2、点击发送时的ajax代码:

<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页面:

<?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实现淘宝客服或阿里旺旺聊天功能(前台页面)

前台页面会随不同用户登录显示不同的信息;让王五登录看看:

PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)

以上所述是小编给大家介绍的PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
php array_slice函数的使用以及参数详解
Aug 30 PHP
PHP面向对象分析设计的经验原则
Sep 20 PHP
支持数组的ADDSLASHES的php函数
Feb 16 PHP
phpMyAdmin 链接表的附加功能尚未激活的问题
Aug 01 PHP
php 阴历-农历-转换类代码
Jan 16 PHP
PHP empty函数报错解决办法
Mar 06 PHP
PHP批量生成静态HTML的简单原理和方法
Apr 20 PHP
php购物车实现方法
Jan 03 PHP
php生成短域名函数
Mar 23 PHP
php实现随机显示图片方法汇总
May 21 PHP
PHP面向对象程序设计重载(overloading)操作详解
Jun 13 PHP
Laravel5.5 动态切换多语言的操作方式
Oct 25 PHP
php使用str_replace替换多维数组的实现方法分析
Jun 15 #PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
Jun 15 #PHP
php7基于递归实现删除空文件夹的方法示例
Jun 15 #PHP
php实现的二叉树遍历算法示例
Jun 15 #PHP
深入浅析PHP的session反序列化漏洞问题
Jun 15 #PHP
PHP中phar包的使用教程
Jun 14 #PHP
iis 7下安装laravel 5.4环境的方法教程
Jun 14 #PHP
You might like
ajax实现无刷新分页(php)
2010/07/18 PHP
php 团购折扣计算公式
2011/11/24 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
2017/06/02 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
2019/05/08 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
基于Electron实现桌面应用开发代码实例
2020/07/07 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
[01:02:02]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第二局
2016/02/25 DOTA
python中使用pyhook实现键盘监控的例子
2014/07/18 Python
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
Python with语句和过程抽取思想
2019/12/23 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
详解Python遍历列表时删除元素的正确做法
2021/01/07 Python
教师自荐信
2013/12/10 职场文书
英语道歉信范文
2014/01/09 职场文书
安全环保标语
2014/06/09 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
队列队形口号
2015/12/25 职场文书
ConditionalOnProperty配置swagger不生效问题及解决
2022/06/14 Java/Android
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS