ASP使用SQL查询中上一页的变量

ASP使用SQL查询中上一页的变量,sql,vbscript,asp-classic,Sql,Vbscript,Asp Classic,在我的第一页中,我有一个数组定义为: dim selection selection = Array("name", "city") 在下面的ASP页面上,我尝试调用SQL查询的相同变量: dim selection selection = array(request.form("name"), request.form("city")) sqlstr = "SELECT * from Users where name='" + selection(0) + "' and c

在我的第一页中,我有一个数组定义为:

dim selection
    selection = Array("name", "city")
在下面的ASP页面上,我尝试调用SQL查询的相同变量:

dim selection
    selection = array(request.form("name"), request.form("city"))
sqlstr = "SELECT * from Users where name='" + selection(0) + "' and city= '" + selection(1) + "'
在我的SQL查询中:

dim selection
    selection = array(request.form("name"), request.form("city"))
sqlstr = "SELECT * from Users where name='" + selection(0) + "' and city= '" + selection(1) + "'

这不起作用,我试着用它来解决问题,但似乎找不到有效的解决方案。我遗漏了什么?

Html表单不做数组。通过
Request.Form()
得到的最好结果是一个逗号分隔的列表,如果您有多个同名的表单字段:根本无法“一块”传递整个数组

根据您的“我已将两个SQL列强制放入同一个选择框”注释,我认为您需要的是:

<select name='Person' size='1'>
    <option value='NameID1~AddressID1'>John Smith, 123 Main Street</option>
    <option value='NameID1~AddressID2'>John Smith, 345 Elm Avenue</option>
    ...
</select>

当然,您需要选择分隔符字符,这样它就不会出现在选项值中。

“不起作用”如何执行?查询不返回任何值。我相信我没有正确调用上一页的数组?你不能发布这样的数组。检查:对于不需要数组的2个值,您可以使用隐藏输入或通过查询字符串传递它们。在公开这样的查询时还要注意sql注入!在第一页中,我确实需要数组,因为我已将两个SQL列强制放入同一个选择框中,并且需要一种使每列唯一的方法。既然这些值是唯一的[selection(0)和selection(1)],我需要在下一页调用它们以进行另一个SQL查询。我将如何使用隐藏的输入来传递它们?