考えられる問題 (これらが実際に問題なのか、コードをトリミングした結果なのかは不明です):
- フィールドには名前がないため、値が返されません (この点で ID は役に立ちません)。
- ID 属性は一意である必要があります。それらすべてに「AwardNum」を使用することはできません。
- 検索するフィールドの数をフォームに伝える必要があります。
<form action="action_awards.asp?Action=sort&Award_ID=<%=Award_ID%>" method="post">
<%
dim i
i=0
'... display stuff omitted
While not rsAwards.EOF
'- only fields with names can return any data
response.write "<input type='text' name='A_" & i & "'"
'- id attributes must be unique
response.write " id='AwardNum_" & i & "' size='1' value='" & i & "'>"
rsAwards.MoveNext
i=i+1
Wend
'- tell the form how many fields there are
response.write "<input type='hidden' name='N' value='" & i & "'>"
'- (I assume you have a submit button or some other method to submit the data?)
%>
</form>
このフォームを読むには、次のようにします。
dim N, V(), i
N = request.form("N")
redim V(N)
for i = 0 to N
V(i) = request.form("A_" & i)
next
もう 1 つのオプションは、すべてのフィールドに同じ名前を付けることです。
response.write "<input type='text' name='Award' value='" & i & "'>"
これにより、カンマ区切りの値のリストが得られ、Split()
それらを分割するために使用できます。
V = Request.Form("Award")
V = Split(V,", ")
for i = 0 to UBound(V)
if V(i) <> "" then '... do stuff ...
next
このアプローチは、可能なフィールド値が (a) かなり短く、(b) コンマが含まれない場合にのみ推奨されることに注意してください。したがって、チェックボックスでは機能しますが、おそらくテキスト入力フィールドを処理する最良の方法ではなく、テキストエリアについても考慮する必要はありません。