我正在开发一个经典的ASP web应用程序。我有dropdownbox,用户可以选择多个项目并提交表单。现在我的需求是如何获取DropDownBox的内容(需要在数据库表中同时插入content和value,其中value为表ID(主键))
例如
<option value="1">ABC</option>
<option value="2">XYZ</option>
<option value="3">MNO</option>
--------
--------
--------
<option value="100">DEF</option>用户提交页面后,我如何才能获得所选下拉项目的内容。
我可以通过以下代码获取值: item =request.form("data")那么如何获取所选项目的内容
发布于 2015-07-04 09:13:47
对于多选列表框,Request.Form将包含所选值的逗号分隔列表。例如,如果选择了以下选项:
<option value="1">ABC</option>
<option value="3">MNO</option>Request.Form(<name of select element>)将包含:
1, 3因此,您可以对该值执行Split()操作,以获得所选选项的数组:
a = Split(Request.Form("whatever"), ",")
For Each o In a
Response.Write "Selected value = " & o & "<br>"
Next编辑
听起来你需要这样做:
<option value="1-ABC">ABC</option>
<option value="2-XYZ">XYZ</option>
<option value="3-MNO">MNO</option>然后使用类似于上面发布的代码,但也可以在o上使用Split()来将ID与文本分开:
a = Split(Request.Form("whatever"), ",")
Dim o, id, text
For Each o In a
id = Split(o, "-")(0)
text = Split(o, "-")(1)
Response.Write "Selected value = " & id & ", text = " & text & "<br>"
Next发布于 2015-07-04 06:49:18
经过仔细检查,我认为不可能使用ASP Classic的request对象从下拉项中抓取文本。由于您包含了ASP.NET标记,如果您正在使用该标记,则该文本是该控件之外的属性:
// Gets the value of the dropdown item
nameOfDropDown.SelectedItem.Value
// Gets the text of the dropdown item
nameOfDropDown.SelectedItem.Text如果您需要解决ASP Classic的问题,您可以在下拉列表中使用与映射对象相同的数据填充数组。在用户提交表单之后,您可以使用请求的表单数据中返回的值来索引数组,以检索文本值。
//Assuming VB when using ASP Classic
//Also assuming a method that returns the values for your dropdown
Dim dropDownArray() = MethodToReturnArrayOfDropDownText()
//Using your snippet for getting the dropdown value
Dim item = request.form("data")
//Use that value to get the text out of the array
Dim selectedText = dropDownArray(item)注意,根据支持数组的语言,您可能必须调整为基于0或1的数组。如果dropdown是多选的,您还必须遍历返回的表单数据。
https://stackoverflow.com/questions/31214378
复制相似问题