52,797
社区成员
发帖
与我相关
我的任务
分享
function handlejs()
{
if(obj.readyState==4)
{
if(obj.status==200)
{
if(obj.responseXML)
{
xml=obj.responseXML;
node=xml.getElementsByTagName("d");
if(node.length!=0)//如果d节点的子节点不为0,则取数据
{
var dv=document.getElementById("dvContent");
dv.innerHTML=node[0].firstChild.nodeValue;
dv.style.display="";
}
}
}
else
alert("请求的文件出错,请检查!");
}
}
<%@ Page Language="C#" ResponseEncoding="gb2312"%>
<%@Import Namespace="System.Data.OleDb" %>
<script type="text/C#" runat="server">
protected void Page_Load(object sender, EventArgs e)
{
string xml="", k="";
k = Request.QueryString["k"];
if (k != null && k.Trim() != "")
{
xml = "<?xml version='1.0' encoding='gb2312'?>";
xml += "<data><d><![CDATA[";
k = k.Replace("'", "''");
string sql = "select top 10 keyword from test where keyword like '%"+k+"%'";
OleDbConnection cn = new OleDbConnection("Provider=microsoft.jet.oledb.4.0;data source=" + Server.MapPath("data.mdb"));
OleDbDataReader dr;
OleDbCommand com = new OleDbCommand(sql,cn);
cn.Open();
dr = com.ExecuteReader();
while (dr.Read())
{
xml += "<div onclick='setContent(this.innerHTML)'>"+dr[0].ToString()+"</div>";
}
dr.Close();
com.Dispose();
cn.Close();
xml += "]]></d></data>";
}
Response.ContentType = "text/xml";
Response.Clear();
Response.Write(xml);
}
</script>
function getData(va)
{
document.getElementById('dvContent').style.display="none";
if(va!="")
{
//======================修改这里
var url='res.asp?ts='+new Date().getTime()+'&k='+escape(va);//要把字符编码过,因为.net默认为utf-8
obj=CreateAJAX();
if(obj)
{
obj.onreadystatechange=handlejs;
obj.open('get',url,true);
obj.send(null);
}
else
alert("创建AJAX对象失败!");
}
}
dim k,xml
res=""
k=trim(request.querystring("k")&"")
if k<>"" then
'当出现中文字符时,最好用XML作为信息载体,要不出现乱码
k=replace(k,"'","''")
dim cn,rs,sql
xml=xml&"<?xml version=""1.0"" encoding=""gb2312""?>"
xml=xml&"<data><d><![CDATA["
sql="select top 10 keyword from test where keyword like '%"&k&"%'" '返回前10条数据
set cn=server.createobject("adodb.connection")
cn.open "provider=microsoft.jet.oledb.4.0;data source="&server.mappath("data.mdb")
set rs=cn.execute(sql)
do while not rs.eof
xml=xml&"<div onclick='setContent(this.innerHTML)'>"&rs(0)&"</div>"&vbnewline
rs.movenext
loop
rs.close
set rs=nothing
cn.close
set cn=nothing
xml=xml&"]]></d></data>"
response.Clear
response.charset="gb2312"
response.contentType="text/xml"
response.write xml
else
response.write xml
end if
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<title>Google</title>
<script type="text/javascript">
var obj;
var to;//setTimeout时间变量,对于输入快时可以延迟查询
function getD(va)
{
if(to) clearTimeout(to);
to=setTimeout("getData('"+va+"')",500);//延迟500毫秒后再查询
}
function getData(va)
{
document.getElementById('dvContent').style.display="none";
if(va!="")
{
var url='res.asp?ts='+new Date().getTime()+'&k='+va;
obj=CreateAJAX();
if(obj)
{
obj.onreadystatechange=handlejs;
obj.open('get',url,true);
obj.send(null);
}
else
alert("创建AJAX对象失败!");
}
}
function handlejs()
{
if(obj.readyState==4)
{
if(obj.status==200)
{
if(obj.responseXML)
{
xml=obj.responseXML;
node=xml.getElementsByTagName("d");
var dv=document.getElementById("dvContent");
dv.innerHTML=node[0].firstChild.nodeValue;
dv.style.display="";
}
}
else
alert("请求的文件出错,请检查!");
}
}
function CreateAJAX()
{
if(typeof(XMLHttpRequest)!="undefined")
return new XMLHttpRequest();
if(window.ActiveXObject)
{
var objs=["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHTTP"];
var xmlhttp;
for(var i=0;i<objs.length;i++)
{
try
{
xmlhttp=new ActiveXObject(objs[i]);
return xmlhttp;
}
catch(e)
{
//do nothing
}
}
}
}
function setContent(data)
{
document.getElementById('kw').value=data;
document.getElementById('dvContent').style.display="none";
}
function setPosition()
{
var dv=document.getElementById('dvContent');
dv.style.left=getPos("x");
dv.style.top=getPos("y")+20;
}
function getPos(type)
{
var p;
var o=document.getElementById('kw');
if(type=="x")
p=o.offsetLeft;
else
p=o.offsetTop;
while(o=o.offsetParent)
{
if (type=="x")
{
p+=o.offsetLeft;
}
else
{
p+=o.offsetTop;
}
}
return p;
}
</script>
</head>
<body onload="setPosition()">
<br /><br /><br />
<input type="text" style="width:300px" id="kw" name="kw" onkeyup="getD(this.value)"/><br/>
<div id="dvContent" style="display:none;position:absolute"></div>
</body>
</html>