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">
嗨,
我正在创建以名称开头的动态输入文本框: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">