关于智能机器人模块功能。智能读取数据库的数据,不能介入人工客服,比较小的功能
来源:互联网 发布:文字录入赚钱软件 编辑:程序博客网 时间:2024/05/02 00:57
这里表现出来的主要是前台HTML页面代码。第一次发博客,见谅。后台Java代码会贴出少量,主要是从数据库把数据读取出来,然后再通过json格式传到前台。前台解析出来,解析的数据包括单挑数据,也包括数据集合。写这篇博客,主要是看这种代码让你知道怎样运用,并不是照搬抄写。自己原创。因为某些原因只能贴出部分主要代码。前台页面人在聊天时,比如你输入“你好”,他会弹出事先设定好的答案。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>**客服机器人</title><link href="/${res}/css/html5.css" rel="stylesheet" type="text/css"/><link href="${resSys}/jqueryUI/jquery.ui.css" rel="stylesheet" type="text/css"/><script src="${resSys}/jquery.js" type="text/javascript"></script><script src="${resSys}/jqueryUI/jquery-ui.js" type="text/javascript"></script><script src="${resSys}/front.js" type="text/javascript"></script><style type="text/css">#search {text-align: center;position: relative;}.autocomplete {border: 1px solid #9ACCFB;background-color: white;text-align: left;}.autocomplete li {list-style-type: none;}.clickable {cursor: default;}.highlight {background-color: #9ACCFB;}div{border:0px solid red;}.div_box{width:500px;min-height:300px; /**ie7版本下支持*/max-height:300px; /**最大的高度*/—height:300px; /**ie6下支持*/margin-left:auto;margin-right:auto;padding:3px;outline:0; /**鼠标点进去,外边框去掉*/border:1px solid #a0b3d6;font-size:12px;word-wrap:break-word; /**当输入文字,单词超过父容器宽度,会自动转下一行,最后一个单词,不会拆分*/overflow-x:hidden; /**水平滚动条隐藏*/overflow-y:auto; /**垂直滚动条,当超出一定高度时出现*/}.input1{width:60px;height:60px;}.div_option{width:100px;height:100px; padding:3px;outline:0; border:1px solid #a0b3d6;font-size:12px;word-wrap:break-word; overflow-x:hidden; overflow-y:auto; float:left;}</style><script src="${resSys}/jquery.js" type="text/javascript"></script><script type="text/javascript" charset="utf-8">var u = 1;var t =1;$(document).ready(function(){//know为提交按钮id$("#know").click(function(){//获取文本域的值var keyword=$("#keyword").val();$.ajax({url:"${base}/knowledge/index.jspx", //需要传递到后台的地址type:"post", //传递的方式,post更安全dataType: "json",//返回json格式的数据data: "op=2&mp=mp&keyword="+keyword, //传递到后台的数据 success: function (data) { if(data.success==true){ //表示输入的问题在数据库当中有多个 if(data.key>1){ addAttachLine1(); $("#knowman1"+u).html(data.knowman); $("#other"+u).html(data.other); $("#time1a"+u).html(data.time2); u++; scrollToHeight(); }else if(data.key==1){ addAttachLine2(); $("#adminkeyword"+u).html(data.keyword); $("#time2a"+u).html(data.time2); $("#knowman2"+u).html(data.knowman); $("#answer1"+u).html(data.answer); $("#time1b"+u).html(data.time1); u++; //使滚动条往下滚动 scrollToHeight(); } //从后台接收到的判断条件 }else if(data.success==false){ //从后台间接收到的判断条件 if(data.status==1){ addAttachLine3(); $("#knowman3"+u).html(data.knowman); $("#empty"+u).html(data.empty); $("#time1c"+u).html(data.time2); u++; scrollToHeight(); }else if(data.status==2){ addAttachLine4(); $("#adminkeyword1"+u).html(data.keyword); $("#time2b"+u).html(data.time2); $("#knowman4"+u).html(data.knowman); $("#notfound"+u).html(data.notfound); $("#time1d"+u).html(data.time1); scrollToHeight(); //声明一个空字符串 var str1=''; //循环遍历从后台接收到的问题分类集合 for(var i=0;i<data.Classifcation.length;i++){ var h = $("#button").html(); h = h.replace("_index",i); h = h.replace("dateIndex",i); h = h.replace("datevalue",(data.Classifcation)[i]); str1 = str1 +h; } //加上换行 var br="<br/><br/>"; $("#answer").append(str1+br); u++; //使滚动条往下滚动 scrollToHeight(); } } }});});});//问题分类点击事件方法,传了一个形参function getList(i){//通过问题分类对应id获取相应问题分类值var param=$("#b"+i).val();$.ajax({type:'post',url:'${base}/knowledge/index.jspx',dataType:'json',data: "op=1&mp=mp¶m="+param,success: function(data){if(data.b==true){var str='';//接收从后台传过来的对应问题分类,便历每个问题分类的所有问题for(var n=0;n<data.problemList.length;n++){str=str+"<option value='"+(data.problemList)[n]+"' title='"+(data.problemList)[n]+"'>"+(data.problemList)[n]+"</option>"}var paramA="<select size='5' style='width:100px;' multiple='multiple'>"+"<option style='color:blue'>"+param+"分类所有问题<option>"+str+"</select>" $("#answer").append(paramA);scrollToHeight();//使滚动条向下滚动scrollToHeight1();}}});}//打开机器人页面时,机器人的欢迎语句function knowman(){$.ajax({type:'post',url:'${base}/knowledge/index.jspx',dataType:'json',data:"mp=mp&op=3",success:function(data){addAttachLine0();$("#knowman0"+u).html(data.knowman);$("#welcome"+u).html(data.welcome); u++; scrollToHeight();}});}/**是滚动条随内容的增加自动往下滚动*/ function scrollToHeight(){var div=document.getElementById("answer");div.scrollTop=div.scrollHeight;} function scrollToHeight1(){var div=document.getElementById("divList");div.scrollTop=div.scrollHeight;}//智能提示js代码$(function(){//取得div层var $search=$('#search');//取得输入框JQuery对象var $searchInput=$search.find('#keyword');//关闭浏览器提供给输入框的自动完成$searchInput.attr('autocomplete','off');//创建自动完成的下拉列表,用于显示服务器返回的数据,插入在搜索按钮的后面,等显示的时候在调整位置var $autocomplete=$('<div class="autocomplete"></div>').hide().insertAfter('#know');//晴空下拉列表的内容并且影藏下拉了表区var clear=function(){$autocomplete.empty().hide();};//注册事件,当输入框失去焦点的时候晴空下拉列表鬓影藏$searchInput.blur(function(){setTimeout(clear,500);});//下拉列表中高亮的项目索引,当显示下拉列表项的时候,移动鼠标或键盘的上下键就会移动高亮得项目,像百度那样var selectedItem=null;//timeout的idvar timeoutid=null;//设置下拉项的高亮背景var setSelectedItem=function(item){//更新索引变量selectedItem=item;//按上下键是循环现实的,小于0就置成最大的值,大于最大值就置成0if(selectedItem<0){selectedItem=$autocomplete.find('li').length-1;}else if(selectedItem>$autocomplete.find('li').length - 1){selectedItem=0;}//首先移除其他列表项的高亮背景,然后再高亮当前索引的背景$autocomplete.find('li').removeClass('highlight').eq(selectedItem).addClass('highlight');};var ajax_request=function(){$.ajax({'url':'${base}/knowledge/problemlist.jspx',//服务器地址'data':{'search-text':$searchInput.val()},//参数'dataType':'json',//返回数据类型'type':'post',//请求类型'success':function(data){if(data.length){//便历data,添加到自动完成区$.each(data,function(index,term){//创建li标签,添加到下拉列表中$('<li></li>').text(term).appendTo($autocomplete).addClass('clickable').hover(function(){//下拉列表每一项的事件,鼠标移进去的操作$(this).siblings().removeClass('highlight');$(this).addClass('highlight');selectedItem = index;},function(){//下拉列表每一项的事件,鼠标离开的操作$(this).removeClass('highlight');//当鼠标离开时索引置-1,当做标记selectedItem=-1;}).click(function(){//鼠标单击下拉列表的这一项的话,就将这一项的值添加到输入框中$searchInput.val(term);//清空并隐藏下拉列表$autocomplete.empty().hide();});});//事件注册完毕//设置下拉列表的位置,然后显示下拉列表var ypos=$searchInput.position().top;var xpos=$searchInput.position().left;$autocomplete.css('width',$searchInput.css('width'));$autocomplete.css({'position' : 'relative','left' : xpos + "px",'top' : ypos + "px"});setSelectedItem(0);//显示下拉列表$autocomplete.show();}}});};//对输入框进行事件注册$searchInput.keyup(function(event){//字母数字,退格,空格if(event.keyCode > 40 || event.keyCode == 8|| event.keyCode == 32){//首先删除下拉列表中的信息$autocomplete.empty().hide();clearTimeout(timeoutid);timeoutid=setTimeout(ajax_request, 100);}else if(event.keyCode==38){//上//selectedItem = -1 代表鼠标离开if(selectedItem == -1){setSelectedItem($autocomplete.find('li').length - 1);}else{//索引减1setSelectedItem(selectedItem - 1);}event.preventDefault();}else if(event.keyCode==40){//下//selectedItem = -1 代表鼠标离开if(selectedItem == -1){setSelectedItem(0);}else{//索引加1setSelectedItem(selectedItem + 1);}event.preventDefault();}}).keypress(function(){//enter回车键if(event.keyCode==13){//列表为空或者鼠标离开导致当前没有索引值if($autocomplete.find('li').length == 0|| selectedItem == -1){return;}$searchInput.val($autocomplete.find('li').eq(selectedItem).text());$autocomplete.empty().hide();event.preventDefault();}}).keydown(function(event){//esc键if(event.keyCode==27){$autocomplete.empty().hide();event.preventDefault();}});//注册窗口大小改变的事件,重新调整下拉列表的位置$(window).resize(function(){var ypos = $searchInput.position().top;var xpos = $searchInput.position().left;$autocomplete.css('width', $searchInput.css('width'));$autocomplete.css({'position' : 'relative','left' : xpos + "px",'top' : ypos + "px"});});});var attachIndex = 1;function addAttachLine0() {var attachTpl = $.format($("#attachTr0").val());$('#answer').append(attachTpl(attachIndex++));}function addAttachLine1() {var attachTpl = $.format($("#attachTr1").val());$('#answer').append(attachTpl(attachIndex++));}function addAttachLine2(){var attachTpl = $.format($("#attachTr2").val());$('#answer').append(attachTpl(attachIndex++));}function addAttachLine3() {var attachTpl = $.format($("#attachTr3").val());$('#answer').append(attachTpl(attachIndex++));}function addAttachLine4() {var attachTpl = $.format($("#attachTr4").val());$('#answer').append(attachTpl(attachIndex++));}</script></head><body onload="knowman()"><!-- 机器人欢迎页面语句 --><textarea id="attachTr0" style="display:none;"><div id="attachTr0{0}"><div style='color:blue;'><span id="knowman0{0}"></span>:<span id="welcome{0}"></span></div></div><br/></textarea><!-- 问题有多个的处理语句 --><textarea id="attachTr1" style="display:none;"><div id="attachTr1{0}"><div style="color:green;"><span id="knowman1{0}"></span>回答:<span id="other{0}"></span>(<span id="time1a{0}"></span>)</div><br/></div></textarea><!-- 正常流程处理问答语句 --><textarea id="attachTr2" style="display:none;"><div id="attachTr2{0}"><div style='color:blue;'>您的问题是:<span id="adminkeyword{0}"></span>(<span id="time2a{0}"></span>)</div><div style="color:green;"><span id="knowman2{0}"></span>回答:<span id="answer1{0}"></span>(<span id="time1b{0}"></span>)</div><br/></div></textarea><!-- 问题为空处理语句 --><textarea id="attachTr3" style="display:none;"><div id="attachTr3{0}"><div style="color:green;"><span id="knowman3{0}"></span>回答:<span id="empty{0}"></span>(<span id="time1c{0}"></span>)</div><br/></div></textarea><!-- 问题所属答案不存在处理语句 --><textarea id="attachTr4" style="display:none;"><div id="attachTr4{0}"><div style='color:blue;'>您的问题是:<span id="adminkeyword1{0}"></span>(<span id="time2b{0}"></span>)</div><div style="color:green;"><span id="knowman4{0}"></span>回答:<span id="notfound{0}"></span><span style='color:red'>(分类问题可点击)</span>:(<span id="time1d{0}"></span>)</div><br/><div id="button" style="display:none;"><input id="b_index" type="button" onclick="disabled=true;getList(dateIndex)" style="color:blue;background-color:#ccc;cursor: pointer;" value="datevalue"/></div><br/></div></textarea><div class="container">[#include "../include/header.html"/] [#include "../include/search_csi.html"/] [#include "../include/navi.html"/] <div class="w670"> <div class="clear-10"></div> <div class="hundred100"> <div class="AreaTitle">问政客服</div> <div class="lybCon"> <table width="500" border="1" style="float:left;"><tr><td><p align="center">聊天页面</p> <!-- 下面定义聊天使用的文本域,该文本域用于显示当前聊天信息 --><p align="center"><!-- contenteditable="true"表示可以输入文本信息 --><div id="answer" name="answer" class="div_box" readonly="readonly"></div></p><div align="center" id="search"><!-- 下面是输入聊天信息所使用的文本 --><input id="keyword" name="keyword" size="60"/><!-- 下面是输入聊天信息的文本框, --> <input type="button" class="input1" name="know" id="know" value="提交" /></div><p> </p></td></tr></table><form action="" name="tableForm" id="tableForm" method="post"><table style="width:150px;height:300px;" border="1px solid #ccc" style="margin-left: 50px;"><tr><td>热门问题</td><td width="25px;">提问次数</td></tr> [@cms_knowledge_page] [#list tag_list as mail] <tr><td>${mail.problem!}</td><td>${mail.clicks!}</td></tr> [/#list] [/@cms_knowledge_page] </table></form> </div> </div></div> [#include "../include/right4.html"/] [#include "../include/friend_link.html"/][#include "../include/footer.html"/]</div> </body></html>这段HTML代码,主要是前台部分,js部分主要包括两部分。一部分是用jQuery无刷新的形式把数据传到Java后台去,这其中也包括jQuery如何解析从后台传过来的json数据,解析出来的数据在聊天页面显示出来。另一部分是智能提示功能,这一部分js代码,我是参考了网上的部分,非原创。主要智能提示你输入部分问题,他就能提示有哪些相似的问题,类似于百度的提示功能。我先对这一份HTML代码进行一下说明,稍后会贴出Java后台代码。
0 0
- 关于智能机器人模块功能。智能读取数据库的数据,不能介入人工客服,比较小的功能
- 微信智能小机器人 小马 智能客服 调用
- 智能客服机器人所需要的技术点
- “商业智能”的功能构架
- XMind的智能截图功能
- Android智能机器人“小慕”的实现
- WPF制作的一个小功能,输入智能提示(IntelliSense)
- 关于智能机器人的一些愚见
- 关于智能机器人的一些伦理道德问题
- 智能机器人的学术探讨
- 关于vs突然没有了智能提示功能的问题解决
- 常规功能和模块自定义系统—058商业智能(BI)功能的初步1
- 常规功能和模块自定义系统—059商业智能(BI)功能的初步2
- 常规功能和模块自定义系统—060商业智能(BI)功能的初步3
- 商业智能系统的功能构架
- 智能狂拼一个独特的功能
- Google的智能提示功能----- AutoComplete控件
- asp.net的页面智能导航功能!
- Android应用开发SharedPreferences存储数据的使用方法
- 第三章41题
- C++11 移动语义和完美转发
- fzu 1683 纪念SlingShot (矩阵快速幂)
- BC 2015百度之星程序设计大赛 - 热身赛(仅供熟悉比赛环境)(Harry and Magical Computer-topsort)[Template:topsort]
- 关于智能机器人模块功能。智能读取数据库的数据,不能介入人工客服,比较小的功能
- Object-Graph Navigation Language
- I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之声卡驱动移植
- p124 第三章 第42题 潘璠
- p value 是什么
- 的非方将航股将工尽给丫
- 关于企业账号
- C++中的引用
- 自定义BaseAdapter完成ListView列表单选功能