我正在使用一些js以一种形式重复额外的一对下拉列表,即
第1项:描述 - 尺寸
第2项:描述 - 尺寸
第3项:描述 - 尺寸
由于每个下拉列表具有相同的表单字段名称,因此这给出了两个逗号分隔的输出,例如
1, 2, 7 and 2, 5, 6
当我将这些内容写入我的数据库时,我需要将两个列表合并为:
(1, 2), (2, 5), (7, 6)
构建重复的SQL语句。我该如何实现这一目标?我尝试了各种各样的FOR循环,但似乎无法破解它。是否有一个我缺少的明显功能?
代码:
UniformItemArray=split(UniformItem,",")
UniformSizeArray=split(UniformSize,",")
iUniform=0
iSize=0
FOR EACH Uniform in UniformItemArray
Response.Write("("&trim(Uniform)&",")
FOR EACH Size in UniformSizeArray
iSize=iUniform
IF cint(iUniform)=cint(iSize) THEN
Response.Write(Size)
END IF
NEXT
Response.Write(") - ")
iUniform=iUniform+1
NEXT
这是回归:
(1,2 5 6) - (2,2 5 6) - (7,2 5 6) -
我需要的是
(1,2) - (2,5) - (7,6) -
我添加了括号和破折号以澄清。基本上,它在第一个数组中正确循环,但是尽管在第二个循环中添加了IF语句和各种其他排列,我无法让它显示第二个数组的正确值。 一旦我能够正确地获得此代码,我将使用它来构建SQL语句。
答案 0 :(得分:1)
如果你的两个数组总是同步的(两个数组中元素的顺序匹配),那么这很简单。
不要使用For Each
循环,只需使用标准的For
循环,然后将Uniform
作为您的计数器。
Dim UniformItemArray, UniformSizeArray
Dim Uniform, Uniforms
UniformItemArray = Split(UniformItem, ",")
UniformSizeArray = Split(UniformSize, ",")
If IsArray(UniformItemArray) Then
Uniforms = UBound(UniformItemArray)
For Uniform = 0 To Uniforms
'Add a comma after the first iteration
If Uniform > 0 Then Response.Write ","
Response.Write "(" & UniformItemArray(Uniform) & "," & UniformSizeArray(Uniform) & ")"
Next
End If