将下拉值传递给经典asp中的操作

时间:2014-10-03 11:22:34

标签: asp-classic

我正在研究经典的Asp,我想通过查询字符串将下拉中选择的值发送到另一个表单。我尝试如下:

<FORM method="POST" action="Includes/bfl_forms.asp?type=S&id="&rsStates("UID")>

并且喜欢这样,但没有成功

<FORM method="POST" action="Includes/bfl_forms.asp?type=S&id="&dest.options[dest.selectedIndex].value>

但我填充的方式如下:

private sub generateStateDropDownList()`
    temp = ""`
    temp = temp + "<SELECT NAME=""dest"">"   `
    temp = temp + "<option value=""#"">Select a State"`
    rsStates.MoveFirst`
    Do While NOT rsStates.EOF`
        temp = temp + "</SELECT>"'`

我无法将下拉值传递给新表单。请帮助我提前谢谢。

2 个答案:

答案 0 :(得分:1)

您似乎错误地格式化了form代码。你应该做这样的事情:

<form method="post" action="includes/bgl_forms.asp?type=S&id=<%= rsStates("UID") %>">

...或

<form method="post" action="includes/bgl_forms.asp?type=S&id=<%= Request.Form("dest") %>">

但是填充select标记的代码有点遍布。首先,将输出直接写入缓冲区更有效,如下所示:

Response.Write("<select....")

而不是像这样建立一个字符串。

其次,您只需要提供option标记的select列表,就像这样......

<select id="dest" name="dest">
    <% BuildOptions rsStates(destId) %>
</select>

中间的BuildOptions函数将用于填充查找列表中的选项。

速度始终是CLassic ASP的关键。我建议您使用ADO RecordSet对象的GetRows之类的内容。

答案 1 :(得分:1)

如何使用GET而不是POST?

<form method="GET" action="includes/bgl_forms.asp">

这会将所有输入都放入查询字符串