主题:  vb脚本在asp中的应用问题

binbeny

职务:普通成员
等级:1
金币:0.0
发贴:11
注册:2001/12/3 16:01:47
#12001/12/3 16:03:36
程序一:
<% sub type_onchange
detail=frmform.type.value
set lms=server.createobject("adodb.recordset")
lms.open "select * from detail where user='"&detail&"'",conn,0,1
if not lms.eof then
frmform.medicine.text=lms("name")
end if
lms.close
set lms=nothing
end sub
%>
程序二:

我做的是有两个选择框,在第一个选择框是一级目录,第一个框选择的不同,第二个显示的内容就不相同,两个框的内容都是从数据库里读出来的,我希望在第一个选择框选择后不用重新调入页面而第二个框就会自动变化,就象脚本一样,有没有什么办法啊?
上面两个程序都无法运行,因为:
在asp中,前后台的程序是截然分开的,因为HTTP协议本身是无状态的,客户端在得到服务器端发送的HTML文本后就已经和服务器端失去联系了,如果要执行服务器端的脚本,只有两个办法:重新向服务器端提出请求,重新得到HTML内容或者是使用remote scripting技术,利用java applet实现保持状态的连接,因此服务器端的脚本和客户端脚本是不能直接混合使用的。
你的那段代码1的错误是必然的,因为form对象存在于客户端,服务器端没有这些对象,当然也就去不到值了。
代码2的错误则在于混淆了客户端和服务器端的区别:<%%>或中的脚本是在服务器端执行的,这一步处理完之后才返回给客户端,客户端的脚本才能执行。也就是说<%%>中间的脚本会先执行,这时服务器端的detail没有赋值,vbs默认为空,最后的sql就是select * from detail where user=''当然取不到值了。

大家有没有什么可以解决的方法啊?
http://www.cas.net.cn

编辑历史:[这消息被binbeny编辑过(编辑时间2001-12-03 16:16:22)]


5D荣誉斑竹

职务:普通成员
等级:2
金币:1.0
发贴:343
注册:2001/11/7 20:32:29
#22001/12/3 23:22:08
我的解决办法是:
在从数据库检索出第一个选择框的所有内容时,同时检索出每一个item的相关内容(即第二个选择框要现实的所有内容),然后将其放入数组变量中。通过第一个的变化,使用脚本来实现第二个的动态显示。
这样就避免了每一次提交页面,同时加快了显示数度。



binbeny

职务:普通成员
等级:1
金币:0.0
发贴:11
注册:2001/12/3 16:01:47
#32001/12/4 9:27:47
可以说得具体一点吗?我还不是很明白啊。