asp 的select简单问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 02:19:24
<select name="cid" id="cid">
<%
set rsf=server.CreateObject("adodb.recordset")
rsf.Open "select * from board where classid=3 order by id desc ",connkillsql,1,1
bid=request.QueryString("bid")
%>
<% do while not rsf.eof%>
<option value="<%=rsf("boardid")%>" <% if rsf("boardid")=bid then%>selected="selected" <%end if%>><%=rsf("boardname")%></option>

<%
rsf.movenext
loop
rsf.close

%>
</select>

这句<% if rsf("boardid")=bid then%>selected="selected" <%end if%>
为何这里if rsf("boardid")=bid 取不到bid的值呢?没错啊
bid=request.QueryString("bid")当然是传过来的,这个就是接收啊
```````````````````
我如果改成<option value="<%=rsf("boardid")%>"

分别把rsf("boardid") 和 bid 打印出来,如果bid为空的话,说明你上一个页面没有把这个参数传递过来.

你现在是用request.QueryString方式接收参数,因此上一个页面传递过来的bid务必以GET方式提交,如果是放到FROM里的是获取不到的.
另外在比较的时候我建议你换成

<% if trim(rsf("boardid"))=trim(bid) then%>selected="selected"<%end if%>

避免因为看不到的空格耽误宝贵的时间.呵呵.

===

既然两个值都获取到了,那就是对比的问题了.建议你换成我上面的方法进行对比,看的出是你想将SELECT里面的某一个OPTION设置成选中状态.那就要确定你取出来的值是否有和OPTION相同的啦.

你的bid是通过ASP的地址参数传过来的吗?不能确定的话把

bid=request.QueryString("bid")

改成

bid=request("bid")

试试。

数值型的吧?
改成这样
if cint(rsf("boardid"))=cint(bid)

bid 是不是变量

如果不是要双引号 rsf("boardid")="bid"