-1

ここでやりたいのは、コンボボックスで選択したオプションに基づいて画像をロードすることです。しかし、ページのリロード後にコンボボックスから「2011」を選択すると、選択したオプションは再び2012になります。plzが私を助けてくれます。これは私のASPコードです。

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><
<head><title>Sinhgad Alumni</title>
<script type="text/javascript"></script>
</head>
<link rel="stylesheet" type="text/css" href="theme/gallery.css">
<body>
<%dim conn,rs,alumniyear,rs2
 Response.write(alumniyear)
    Set conn=Server.createObject("ADODB.Connection")
    Set rs=Server.createObject("ADODB.Recordset")
    Set rs2 = server.createObject("ADODB.Recordset")
    conn.open="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &Server.MapPath("alumni.mdb") & ""
    rs.open "select * from alumni",conn
    %>
<div id="maincontent">
<div class="show">
<form name="form1" method="post"action="gallery.asp">
<h2 style="font:20px SegoeUI, 'Segoe UI', arial, sans-serif;margin: 0 auto;width: 300px;">Pictures of alumni in year:
<select name="drpyear" style="margin: 0 auto;width: 150px;height: 30px;text-align: center" onChange="javascript: document.forms['form1'].submit()" >
<%while NOT rs.EOF%>
<option onclick="javascript: document.forms['form1']">
<%response.write(rs("alumniyear"))%>
</option>
<%rs.MoveNext%>
<%wend%>
</select>
</h2>
</form>
<ul id="gallery">
<%alumniyear=Request("drpyear")
rs2.open "select * from gallery where alumni='"&alumniyear&"'",conn
if rs.EOF then%>
<li><img height="200"width="200" src=<%response.write(rs2("link"))%>></li>
<%else%>
<%while NOT rs2.EOF%>
<li><img height="200"width="200" src=<%response.write(rs2("link"))%>></li>
<%rs.MoveNext
WEND
end if
conn.Close
Set conn =Nothing%>
</ul>
</div>`
4

1 に答える 1

1

選択したオプションを作成するwhileループ内を確認する必要があります。このようなもの

<%while NOT rs.EOF%>       
    <option onclick="javascript: document.forms['form1']"
    <% if (Request.Form("drpyear") = rs("alumniyear")) then response.write "selected='selected'"%>
    >
    <%response.write(rs("alumniyear"))%>
    </option>
<%rs.MoveNext%>

編集:オーバーヘッドを最小限に抑えるために、Request( "drpyear")の代わりにRequest.Form( "drpyear")を使用するようにコードを更新しました

于 2012-10-04T15:33:14.747 に答える