JS cloneNode(true) 複製的 `` 會產生多個同名表單欄位。ASP Request.Form("field") 回傳以逗號分隔的字串(如 "val1,val2,val3")。
<%
Dim rawFields, arrFields, i, rowCount
rawFields = Request.Form("fieldName") ' 取得 "v1,v2,v3"
If rawFields <> "" Then
arrFields = Split(rawFields, ",")
rowCount = UBound(arrFields) + 1
For i = 0 To UBound(arrFields)
' 對應第 i+1 列的 fieldName 值
Response.Write "Row " & (i+1) & ": " & arrFields(i) & "
"
' 同步處理其他欄位:Request.Form("otherField") 也會是逗號分隔
Next
End If
%>
Dim fields, cols, i, j
cols = Array("col1", "col2", "col3") ' 所有輸入框 name
ReDim fields(UBound(cols), 0) ' 暫存
For Each col In cols
Dim vals : vals = Split(Request.Form(col), ",")
If UBound(vals) > UBound(fields, 2) Then ReDim Preserve fields(UBound(cols), UBound(vals))
For j = 0 To UBound(vals)
fields(Array.IndexOf(cols, col), j) = vals(j)
Next
Next
' 現在 fields(colIdx, rowIdx) 即為第 rowIdx 列第 colIdx 欄的值
For i = 0 To UBound(fields, 2)
' 組裝 INSERT SQL
sql = "INSERT INTO tbl (col1,col2,col3) VALUES ('" & fields(0,i) & "','" & fields(1,i) & "','" & fields(2,i) & "')"
conn.Execute sql
Next
Split 結果長度一致,行索引對齊。Replace(val, "'", "''") 轉義。Request.Form 是否為空,避免 Split("") 產生單元素空陣列。ASP 處理 JS 動態複製的表格列,關鍵在於同名輸入框自動合併為逗號分隔字串,使用 Split 還原陣列後按行索引對應各欄位寫入資料庫。