2010-01-09

[ASP]下拉列表、单选按钮动态取值

asp网站在修改文章时,接收到传递的ID,修改页面的下拉列表、单选按钮都默认显示出文章在数据库中的选项,这一点很重要。要实现这一点,主要是通过判断该值是不是数据库中的值,是则为该项添加“slelected”属性,不是则不添加。下面的代码中要用到数据库中的两个表news(文章表)和type(分类表),各有字段若干。完整的查询、判断、显示代码如下:

<%
sql="select * from news where id="&request("id")
set rs0=server.createobject("adodb.recordset")
rs0.open sql,conn,1,1
%>
<!--第一个查询。根据传递的“id”,查询表“news”。-->
首页显示:
    <select name="xs" id="xs">
        <option value="1" <%if intValue=1 then response.write " selected"%>>
            显示
        </option>
        <option value="0" <%if intValue=0 then response.write " selected"%>>
            不显示
        </option>
        <!--我不明白“intValue”的意思,但是此法行得通。也可以把“intValue”代换成“rs("xs")”。-->
    </select>
<!--上面的代码适用于只查询一个表的情况,当涉及到两个表时,要修改一下,如下-->
分类:
    <%
    set rs1=server.createobject("adodb.recordset")
    sql="select * from type"
    rs1.open sql,conn,1,1
    %>
    <!--第二个查询。查询数据库中的分类表“type”。-->
    <select name"typeid" id="typeid">
        <% do while not rs1.eof %>
            <option value="<%=rs1("typeid")%>" <%if rs1("typeid")=rs0("typeid") then response.write " selected"%> >
                <%=rs("type")%>
            </option>
            <!--重点是“rs1("typeid")=rs0("typeid")”,这样当数据库中分类的id与文章分类id一致时,该分类就会成为默认-->
        <%
        rs1.movenext
        loop
        %>
    </select>
    <%
    rs1.close
    %>
    <!--上面是下拉列表的动态取值。-->
    <input type="radio" name="tp" value="1" <%if rs0("tp")="1" then%>checked="<%response.write("checked")%>" <%end if%> />有图;
    <input type="radio" name="tp" value="0" <%if rs0("tp")="0" then%>checked="<%response.write("checked")%>" <%end if%> />无图
    <!--上面是单选按钮的动态取值-->
<%
rs0.close
set rs0=nothing
conn.close
set conn=nothing
%>

(完)

没有评论:

留言须知:
0. 你有權保持沉默,但你所說的將作為此BLOG有人訪問的證據。
1. 支持的HTML標籤:<a href="" title=""> <b> <em> <i> <strong>。
2. 留言留名,不然易被无视。(在“评论”中选择“名称/网址”,网址可以不填)。
3. 原則上我不删除留言,除非那則留言侮辱到你。