2013-11-01 24 views
0

我有一個ul文本框。我想遍歷列表元素並將其值發佈到數據庫。我如何在asp中做到這一點?在asp中循環列表併發布到MS Access

Set dataCon = Server.CreateObject("ADODB.Connection") 
Set rsAwards = Server.CreateObject("ADODB.Recordset") 
strSQL = "SELECT * FROM Awards" 
rsAwards.Open strSQL, dataCon 

<form name="sort_award" action="action_awards.asp?Action=sort&Award_ID=<%=Award_ID%>" method="post"> 

response.write "<ul id='sortable'>" 
    dim i 
    i=0 

    While not rsAwards.EOF 

     response.write "<li onclick='sort()'><input type='text' id='AwardNum' size='1' value="&i&" ></li>" 

     rsAwards.MoveNext 
     i=i+1 

    Wend 
response.write "</ul></form>" 
+0

這是你的實際代碼?查詢的位置和連接對象在哪裏? – Rafael

+0

rsAwards是我的記錄集,我的連接對象被命名爲dataCon – n3tak0

+0

不發佈它作爲評論,更好地編輯您的問題和發佈**所有相關和相關代碼**,解決您的問題 – Rafael

回答

1

可能出現的問題(不知道這些其實都是問題,或者只是微調代碼的一個神器):

  • 你的領域沒有名字,所以他們不返回任何值(在這方面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 

 

另一種辦法是給所有的字段名稱相同:

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)不會包含逗號時才推薦使用此方法。所以它適用於複選框,但它可能不是處理文本輸入字段的最佳方法,甚至不應該考慮textareas。