Classic ASP - 获取以特定名称开头的文本框的值

Classic ASP - Get value of textboxes starting with specific name

嗨,

我正在创建以名称开头的动态输入文本框:loan0 以及名称:balance0 我想让经典 asp 将值放入两个数组中

HTML:

<input type="text" name="name" value="John">
<input type="text" name="phone" value="1234567">

<input type="text" name="loan0" value="bla">
<input type="text" name="loan1" value="blabla">
<input type="text" name="balance0" value="test1">
<input type="text" name="balance1" value="test2">
...........and so on...............

经典ASP:

loan_array = bla,blabla ... and so on..
balance_array = test1,test2 ... and so on...

我试过的:

dim loan_array
loan_array = ""
For Each item In Request.Form
    loan_array = loan_array & Request.Form(item) & ","
Next
 Response.write loan_array
end if

问题: 我得到的结果是所有输入文本框中的所有值,但我只想要那些以名称 balance 开头后跟数字 (以 0 开头)和贷款后跟数字(以 0 开头)

非常感谢您的帮助。

也许这会有所帮助。

dim loan_array, myCounter
loan_array = ""
myCounter = 0
For Each item In Request.Form
loan_array = loan_array & Request.Form(item) & myCounter & ", "
myCounter = myCounter+1
Next
Response.write loan_array

既然 ASP 可以为您做,为什么还要这样做?

HTML:

<input type="text" name="name" value="John">
<input type="text" name="phone" value="1234567">

<input type="text" name="loan" value="bla">
<input type="text" name="loan" value="blabla">
<input type="text" name="balance" value="test1">
<input type="text" name="balance" value="test2">
<!-- ...........and so on............... -->

经典ASP:

Response.Write Request.Form("loan")

输出:

bla, blabla

ASP 甚至会根据同名表单元素出现的顺序构建分隔字符串。


更新:

基于 ,我自己做了一些测试,问题是由于 Request.Form("loan") 如何自动解码和整理条目,但有一个简单的方法解决这个问题并且那就是遍历 Request.Form("loan") 的实例,而不是仅仅调用 Request.Form("loan") 并让它们自动整理在一起。

HTML:

<input type="text" name="loan" value="bla">
<input type="text" name="loan" value="blabla">
<input type="text" name="loan" value="test1,test2">
<input type="text" name="loan" value="test3">
<!-- ...........and so on............... -->

经典ASP:

Dim item
For Each item In Request.Form("loan")
  Response.Write item & "<br />"
Next

输出:

bla
blabla
test1,test2
test3

应该做的方式是 Lankymart 写的,即对所有相关字段使用相同的名称,并让 ASP 进行连接到-字符串给你。 (然后如果你想把它作为一个数组,你可以在逗号上做一个 Split()。)但是,如果你真的想自己做,你可以在 Request.Form 中连接字段名称:

N = Request.Form("N") '- number of fields per type
redim loan_array(N) : redim balance_array(N)
For i = 0 to N
    loan_array(i) = Request.Form("loan" & i)
    '- might as well take advantage of this one-at-a-time approach:
    If Not IsNumeric(loan_array(i)) Then 
        loan_array(i) = 0
    Else
        loan_array(i) = CLng(loan_array(i))
    End If
    balance_array(i) = Request.Form("balance" & i)
    '- etc.
Next
'- one reason for doing it this way might be that your data has commas in it:
Const delimiter = ";"
loan_list = Join(loan_array,delimiter)
balance_list = Join(balance_array,delimiter)

这取决于每种类型的已知数量的字段,但我无法想象您不知道的情况 - 如果没有其他地方,就在您的表格 generating/writing 之后:

<input type="text" name="loan0" value="<%=loan_array(0)%>">
<input type="text" name="loan1" value="<%=loan_array(1)%>">
<input type="text" name="loan2" value="<%=loan_array(2)%>">
...
<input type="hidden" name="N" value="2">