问题描述
我需要将下拉列表中的选定值传递给 SELECT 查询,并根据传递给页面中显示的相应表/记录集的值。我正在努力寻找如何传递价值的方法。
function getUnitCode() {
var x = document.getElementById("UnitCodeDDL");
var unical = x.options[x.selectedindex].value;
alert(unical);
}
<%
Dim strUnitCode
strUnitCode=Request.Form("UnitCodeDDL")
%>
<SELECT NAME=UnitCodeDDL id=UnitCodeDDL onchange="getUnitCode();javascript: document.forms['VehForm'].submit()">
<OPTION VALUE=''>Please Select UnitCode</OPTION>
<%
Dim objRS,strsql
Set objRS=Server.CreateObject ("ADODB.Recordset")
strsql = "SELECT v.unitcode,u.description "
strsql = strsql & "FROM " & strBrand & "_vehicle AS v "
strsql = strsql & "LEFT JOIN unipos AS u "
strsql = strsql & "ON v.unitcode = u.unitcode "
strsql = strsql & "WHERE v_code='" & strVCode & "' "
strsql = strsql & "GROUP BY v.unitcode;"
objRS.Open strsql,objConn
do while Not objRS.EOF
Response.Write "<OPTION VALUE='" & objRS("unitcode") & "'"
if objRS("unitcode")=strUnitCode Then Response.Write " selected "
Response.Write ">"
Response.Write objRS("unitcode") & "</OPTION>"
objRS.MoveNext
Loop
objRS.Close
Set objRS=nothing
Response.Write "</SELECT>"
%>
<%
Dim strAutoSection
strAutoSection = strAutoSection & "<FORM name='VehForm' METHOD=POST ACTION='selectVeh.asp?brand=" & strBrand & "&VCode=" & strVCode & "&Veh=" & server.htmlencode(strVeh) & "&action=upload' enctype='multipart/form-data'>" & vbCrLf
strAutoSection = strAutoSection & "Upload file:<INPUT TYPE='file' NAME='uploadFile'><input type='submit' value='upload'></FORM>"
strAutoSection = strAutoSection & "<TABLE border=1 cellspacing=1 cellpadding=2>" & vbCrLf
strAutoSection = strAutoSection & "<TR bgcolor='#CCFFCC'>" & vbCrLf
strAutoSection = strAutoSection & "<TH>UNITCODE</TH>" & vbCrLf
strAutoSection = strAutoSection & "<TH>DESCRIPTION</TH>" & vbCrLf
strAutoSection = strAutoSection & "</TR>" & vbCrLf
Dim objRS_auto,strsql
Set objRS_auto=Server.CreateObject ("ADODB.Recordset")
strsql = "SELECT v.*,u.description "
strsql = strsql & "FROM " & strBrand & "_vehicle AS v "
strsql = strsql & "LEFT JOIN unitpos AS u "
strsql = strsql & "ON v.unitcode = u.unitcode "
strsql = strsql & "WHERE v_code='" & strVCode & "' AND v.unitcode='" & strUnitCode & "' "
objRS_auto.Open strsql,objConn
%>
我必须在 onchange 事件上从 UnitCodeDDL 获取值并将其传递给查询中的 strUnitCode 变量。谁能指导我如何解决这个问题?
解决方法
我怀疑你正在查看 request.form 对象,但没有在你的表单标签中规定 method=post(你没有显示)
<form method=post>
<select name=myselect>....
</select>
<form>
<% val = request.form("myselect") %>
顺便说一句,您可能希望在代码中使用续行,并在每行开头添加空格使其更具可读性。您可能还需要考虑 SQL 注入的危险,除非您希望整个数据库被盗或删除!
strSQL = " SELECT v.unitcode,u.description" & _
" FROM " & strBrand & "_vehicle AS v" & _
" LEFT JOIN unipos AS u" & _
" ON v.unitcode = u.unitcode" & _
" WHERE v_code='" & strVCode & "'" & _
" GROUP BY v.unitcode;"