2016-07-15 54 views
-1

在我的第一頁我有一個數組定義爲:ASP使用從以前的頁面變量在SQL查詢

dim selection 
    selection = Array("name", "city") 

在下面的ASP頁我想打電話給一個SQL查詢這些相同的變量:

dim selection 
    selection = array(request.form("name"), request.form("city")) 

在我的SQL查詢:

sqlstr = "SELECT * from Users where name='" + selection(0) + "' and city= '" + selection(1) + "' 

這是不行的,我已經試過用模具周圍,但我可以似乎找不到一個可行的解決方案。我錯過了什麼?

+0

「不起作用」* how *? – Siyual

+0

查詢不返回任何值。我相信我沒有正確調用前一頁的數組? – jwabsolutionprime

+1

你不能發佈這樣的數組。檢查:http://www.4guysfromrolla.com/webtech/101999-1.shtml 也只是2個值你不需要一個數組,你可以使用隱藏的輸入或通過查詢字符串傳遞它們。 當暴露這樣的查詢時也要注意sql注入! – stare

回答

0

Html表單不做數組。通過Request.Form()獲得的最好結果是逗號分隔的列表,這就是說,如果您有多個表單字段具有相同的名稱:沒有辦法將整個陣列「一塊」地傳遞。

根據您的「我被迫2分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> 

...你會處理在年底提交通過拆分的分隔符:

const delimiter = "~" 
selection = Request.Form("Person") 
If Instr(selection,delimiter) > 0 Then selection = Split(selection,delimiter) 

當然,你需要選擇你的分隔符(一個或多個),使得有它就會出現在你的選項值沒有機會。