求助,我有一段 ajax的响应提示式代码,想多一个返回数据

yyh820 2017-11-30 05:37:23
我有以下三个文件,主要是通过像百度搜索那样输入关键字提示指定的单条或者多条信息,但是如果存在重复的关键字内容时,会导致无法确认是哪一个ID的,这个功能只返回一个查询后的值到keyword文本框,所以想求助能不能在返回的信息中,同时返回到一个隐藏的文本框中,传送一个ID信息,比如同时有一个id文本框,获取到了记录ID号,这样传送到下一步时,就马上能分清楚是具体哪一条ID记录的的数据了。

第一个显示界面文件是:m.asp

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="../code/style.css" type="text/css">
<title></title>
</head>

<style type="text/css">
<!--
.STYLE5 {color: #0000FF}
-->
</style>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
background-color: #EEEBEE;
}
.STYLE3 {
color: #000000;
font-weight: bold;
}
-->
</style>
<style>
.show_link
{background-color:#fff;padding:2px 6px 2px 6px;}
.show_link_over
{background:#e8e2fe;padding:2px 6px 2px 6px;}
#keyword_show
{position:absolute;background-color:#ffffff;text-align:left;cursor:pointer;border:1px solid #000000;width:250px;}
</style>
<script language="javascript" src="ajaxkeyword.js"></script>

<body onLoad="return hqjd()" >
<table width="95%" height="25" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="35" style="padding-left:15px"><span class="STYLE3">您的位置:开票登记</span></td>
</tr>
</table>
<table width="95%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#999999">
<form id="bd" name="bd" method="post" action="cw-fp-addmain.asp?oldlink=<%=request.ServerVariables("script_name")%>" onSubmit="return bdyz()">

<tr>
<td width="707" height="35" bgcolor="#FFFFFF" style="padding-left:15px">款式信息:
<input type="text" size="30" autocomplete="off" id="keyword" name="keyword" onKeyUp="keywordshow();">
<div id="keyword_show" style="display:none"></div>
* 【请输入已登记款号信息,并根据提示选择,否则无法录入】 </td>
</tr>
<tr>
<td height="35" bgcolor="#FFFFFF" style="padding-left:15px">开票状态:
<select name="fpsign" id="fpsign">
<option value="未结">未结</option>
<option value="已结">已结</option>
<option value="作废">作废</option>
</select></td>
</tr>
<tr>
<td height="50" bgcolor="#FFFFFF" style="padding-left:15px"><input type="submit" name="Submit" value="确认登记" style="height:30px;width:120px;font-size:14px"/>   <input type="reset" name="Submit2" value="重新填写" style="height:30px;width:120px;font-size:14px"/>
</span></td>
</tr>
</form>
</table>
</body>
</html>


下面是:ajaxkeyword.js

var searchReq=createAjaxObj();
function createAjaxObj()
{
var httprequest=false;
if(window.XMLHttpRequest)
{
httprequest=new XMLHttpRequest();
if(httprequest.overrideMimeType)
httprequest.overrideMimeType('text/xml');
}
else if (window.ActiveXObject)
{
//IE
try
{
httprequest=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
httprequest=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
}
}
}
return httprequest
}

function keywordshow()
{
if (document.getElementById('keyword').value.length>0)
{
var str=escape(document.getElementById('keyword').value);
url="ajaxkeyword.asp?keyword="+str+ "&t=" + new Date().getTime();
searchReq.open("get",url);
searchReq.onreadystatechange=handlekeywordshow;
searchReq.send(null);
}
else
{
document.getElementById("keyword_show").innerHTML="";
document.getElementById("keyword_show").style.display="none";
}

}
//download by http://www.codefans.net
function handlekeywordshow()
{
if(searchReq.readyState==4)
{
var ss=document.getElementById("keyword_show");
ss.innerHTML="";
s0=searchReq.responseText.length;
if (s0>0)
{
xmldoc=searchReq.responseXML;
var message_nodes=xmldoc.getElementsByTagName("message");
var n_messages=message_nodes.length;
if (n_messages<=0)
{
document.getElementById("keyword_show").innerHTML="";
document.getElementById("keyword_show").style.display="none";
}
else
{
document.getElementById("keyword_show").style.display="block";
for (i=0;i<n_messages;i++ )
{
var show='<div onmouseover="javascript:showOver(this);"';
show+='onmouseout="javascript:sugggestOut(this);"';
show+='onclick="javascript:setSearch(this.innerHTML);"';
show +='class="show_link">'+message_nodes[i].getElementsByTagName("text")[0].firstChild.data+'</div>';
ss.innerHTML +=show;
}
}
}
else
{
document.getElementById("keyword_show").innerHTML="";
document.getElementById("keyword_show").style.display="none";
}
}
else
{
//alert('网络连接失败');
}
}

function showOver(div_value)
{
div_value.className='show_link_over';
}

function sugggestOut(div_value)
{
div_value.className='show_link';
}

function setSearch(div_value)
{
document.getElementById("keyword").value=div_value;
document.getElementById("keyword_show").innerHTML="";
document.getElementById("keyword_show").style.display="none";
}



最后一个是ajaxkeyword.js中包含的查询文件:ajaxkeyword.asp
<!-- #include file=conn.asp -->
<%
response.ContentType="text/xml"
keyword=trim(request("keyword"))
dim rs
set rs=server.CreateObject("adodb.recordset")
sql="select * from kuanshi where (kh like '%"&keyword&"%' or kszx like '%"&keyword&"%') and gsmc='"&request.Cookies("gsmc")&"'"
rs.open sql,connsqloffice,1,1
keywordshow="<?xml version=""1.0"" encoding=""gb2312""?>"&vbnewline
keywordshow=keywordshow&"<root>"&vbnewline
If not rs.eof Then
i=1
Do While Not rs.eof
keywordshow=keywordshow&"<message id="""&i&""">"&vbnewline
keywordshow=keywordshow&" <text>"&rs("ksid")&"|"&rs("kh")&"|"&rs("kszx")&"</text>"&vbnewline
keywordshow=keywordshow&"</message>"&vbnewline
i=i+1
rs.movenext
loop
End If
keywordshow=keywordshow&"</root>"
rs.close
set rs=nothing
connsqloffice.close
set connsqloffice=nothing
response.write keywordshow
%>
...全文
429 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyh820 2017-12-09
  • 打赏
  • 举报
回复
感谢,已经解决好,谢谢!
Go 旅城通票 2017-12-01
  • 打赏
  • 举报
回复
用json啊,用xml解析多麻烦。。你不是返回了好多组数据了,用|分隔。客户端split下赋值给hidden keywordshow=keywordshow&" <text>"&rs("ksid")&"|"&rs("kh")&"|"&rs("kszx")&"</text>"&vbnewline function setSearch(div_value) { var arr=div_value.split('|') document.getElementById("keyword").value=div_value; document.getElementById("hiddenID").value=arr[0];////自己改这里如果id不对 document.getElementById("keyword_show").innerHTML=""; document.getElementById("keyword_show").style.display="none"; }

Web开发学习资料推荐
javascript解码读取二维码信息
XMLHttpRequest加载视频并播放

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧