dao层
service层
jsp页面
下面是JS代码。
<script type="text/javascript">
var xmlHttp;
//获得用户输入内容的关联信息的函数
function getMoreContents(){
//首先要获得用户的输入
var content = document.getElementById("keyword");
if(content.value == ""){
clearContent();
return;
}
//给服务器发送用户输入的内容,采用AJAX异步发送数据,使用一个对象,叫做xmlHttp对象
xmlHttp = createXMLHttp();
//要给服务器发送数据
var url = "SearchServlet?keyword="+escape(content.value);
//true表示js脚本会在send()方法之后继续执行,而不会等待来自服务器的响应
xmlHttp.open("GET",url,true);
//xmlHttp绑定回调方法,这个回调方法会在xmlHttp状态改变的时候被调用,xmlHttp有4中状态,0到4,4表示完成
xmlHttp.onreadystatechange = callback;
xmlHttp.send(null);
}
//获得xmlHttp对象
function createXMLHttp(){
//对于大多数的浏览器都适用的
var xmlHttp;
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
//要考虑浏览器的兼容性
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
if(!xmlHttp){
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
}
return xmlHttp;
}
//回调函数
function callback(){
if(xmlHttp.readyState==4){//4表示完成
if(xmlHttp.status==200){//200代表服务器响应成功,404代表资源未找到,500代表服务器内部错误
//交互成功,获得相应的数据,是文本格式
var result = xmlHttp.responseText;
//解析获得数据
var json = eval("("+result+")");
for(var i=0;i<json.length;i++){
setContent(json[i].name);
//document.write(json[i].name);
}
//获得数据之后,就可以动态的显示数据,把这些数据展示到输入框下面
document.write(json[i].name);
}
}
}
//设置关联数据的展示,参数代表的是服务器传递过来的关联数据
function setContent(contents){
clearContent();
//首先获得关联数据的长度,以此来确定生成多少<tr></tr>
setLocation();
var size = contents.length;
//设置内容
for(var i=0;i<size;i++){
//var nextNode = contents[i];//代表的是json格式数据的第i个元素
var tr = document.createElement("tr");
var td = document.createElement("td");
td.setAttribute("border", "0");
td.setAttribute("bgcolor", "#fffafa");
td.onmouseover = function(){
this.className = 'mouseOver';
};
td.onmouseout = function(){
this.className = 'mouseOut';
};
td.onclick = function(){
//这个方法实现的是当用鼠标点击一个关联数据时,关联数据自动设置为输入框的数据
};
//document.write(size);
var text = document.createTextNode(contents);
td.appendChild(text);
tr.appendChild(td);
document.getElementById("content_table_body").appendChild(tr);
}
}
//清空之前的数据
function clearContent(){
var contentTableBody = document.getElementById("content_table_body");
var size = contentTableBody.childNodes.length;
for(var i=size-1;i>=0;i--){
contentTableBody.removeChild(contentTableBody.childNodes[i]);
}
document.getElementById("popDiv").style.border="none";
}
//当输入框失去焦点的时候,关联信息清空
function keywordBlur(){
clearContent();
}
//设置显示关联信息的位置
function setLocation(){
//关联信息的显示位置要和输入框一致
var content = document.getElementById("keyword");
var width = content.offsetWidth;//输入框的宽度
var left = content["offsetLeft"];//到左边框的距离
var top = content["offsetTop"]+content.offsetHeight;//到顶部的距离
//获得显示数据的div
var popDiv = document.getElementById("popDiv");
popDiv.style.border = "black 1px solid";
popDiv.style.left = left+"px";
popDiv.style.top = top+"px";
popDiv.style.width = width+"px";
document.getElementById("content_table").style.width = width+"px";
}
</script>
大家看下,我想要把数据库里的name显示在搜索框的下面,但是搜索出来的有一样的,JSON的格式感觉没怎么对。
相关分类