Re---求助,asp+sql查询中引用msxml的问题!

liaob 2004-11-23 12:15:51
小弟现在用msxml带参数到sql中查询数据并显示到asp中。可是如果带过去的参数有特殊字符如%,<,>之类的话,就会变成乱码。请各位好手帮帮忙,我焦头烂额了。
我的程序代码是:


<script language="javascript">
function aa(){
var vMenugroup = form1.menugroup.value;
var vMenugroup2 = form1.module.value;
var veqpidtype = form1.eqpidtype.value;
var oXMLDoc = new ActiveXObject('MSXML');


vMenugroup=vMenugroup;
veqpidtype=veqpidtype;
vMenugroup2=vMenugroup2;

vMenugroup = vMenugroup.replace("/", "~~~~");
vMenugroup = vMenugroup.replace("+", "|||");
vMenugroup = vMenugroup.replace("#", "……");
vMenugroup = vMenugroup.replace("%", "㊣");

sURL = 'Recipe_Modi_XML3.asp?Menugroup=' + vMenugroup +'&Menugroup2=' + vMenugroup2 + '&eqpidtype=' +veqpidtype;
oXMLDoc.url = sURL;
var oRoot=oXMLDoc.root;
if(oRoot.children != null)
{
for(var i=0;i<oRoot.children.length;++i)
{
oItem = oRoot.children.item(i);
sName = oItem.text;
re="^_^";
sName = sName.replace(re, "<");
re="^-^";
sName = sName.replace(re, ">");
var oOption = document.createElement('OPTION');
oOption.text = sName;
oOption.value = sName;
form1.recipe.options.add(oOption);

}
}
}
</script>


-----------------Recipe_Modi_XML3.asp

<!--#include virtual="/Conn_Process.asp"-->
<%
Menugroup=Request.QueryString("Menugroup")
module=Request.QueryString("Menugroup2")
eqpidtype = Request.QueryString("eqpidtype")


Menugroup = Replace(Menugroup,"~~~~","/")
Menugroup = Replace(Menugroup, "|||","+")
Menugroup = Replace(Menugroup, "……","#")
Menugroup = Replace(Menugroup, "㊣","%")



SET rs=server.CreateObject("adodb.recordset")
sql="select distinct replace(replace(replace(t.recpid,'>','^-^'),'<','^_^'),'/','~~~') from mult_chamber_data t where t.Menugroup='"& Menugroup &"' and module='"& module &"' and isms='"& eqpidtype &"' order by 1 "
rs.Open sql,conn_process
%>
<?xml version="1.0" encoding="gb2312" ?>
<loccs>
<location></location>
<%
do while not rs.EOF
%>
<location><%=rs(0)%></location>
<%
rs.MoveNext
loop
rs.Close
set rs=nothing
%>
</loccs>
...全文
72 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
liaob 2004-11-23
ding1111111111111111111
回复
liaob 2004-11-23
我的程序没有问题,问题是我不想每次去做替换动作,而且,如果输入的值刚好是我的替换值,那问题就大了,如何将参数从前一页面传到下一页面而不出现乱码呢?
回复
yqh1314 2004-11-23
replace(replace(replace(t.recpid,'>','^-^'),'<','^_^'),'/','~~~') 这句错了 ASP 中没有这样的功能,只有在VC++ 中才有这样的功能 。只能一个一个的替换!
回复
liaob 2004-11-23
再顶,不能让他沉了。。。。。。。。。。。。。。
回复
liaob 2004-11-23
可是遇到特殊字符参数就会变样
回复
liaob 2004-11-23
<script language="javascript">
function aa(){
var oXMLDoc = new ActiveXObject('MSXML');
sURL = 'Recipe_Modi_XML3.asp?Menugroup=' + vMenugroup ;
oXMLDoc.url = sURL;
var oRoot=oXMLDoc.root;
if(oRoot.children != null)
{
for(var i=0;i<oRoot.children.length;++i)
{
oItem = oRoot.children.item(i);
sName = oItem.text;
re="^_^";
sName = sName.replace(re, "<");
re="^-^";
sName = sName.replace(re, ">");
var oOption = document.createElement('OPTION');
oOption.text = sName;
oOption.value = sName;
form1.recipe.options.add(oOption);

}
}
}
</script>


-----------------Recipe_Modi_XML3.asp

<!--#include virtual="/Conn_Process.asp"-->
<%
Menugroup=Request.QueryString("Menugroup")

SET rs=server.CreateObject("adodb.recordset")
sql="select distinct replace(replace(replace(t.recpid,'>','^-^'),'<','^_^'),'/','~~~') from mult_chamber_data t where t.Menugroup='"& Menugroup &"'"
rs.Open sql,conn_process
%>
<?xml version="1.0" encoding="gb2312" ?>
<loccs>
<location></location>
<%
do while not rs.EOF
%>
<location><%=rs(0)%></location>
<%
rs.MoveNext
loop
rs.Close
set rs=nothing
%>
</loccs>

回复
yqh1314 2004-11-23
写的太多了,能不能简化些把最重要的写出来OK
回复
liaob 2004-11-23
CSDN上就没人愿意看看吗?!
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2004-11-23 12:15
社区公告
暂无公告