从 vbscript 数组中获取变量
Fetching a variable from a vbscript array
我有这些变量
STATE_Newverifdetaillibelle_208="test"
STATE_Newverifdetaillibelle_209=""
STATE_Newverifdetaillibelle_210=""
STATE_Newverifdetaillibelle_211=""
STATE_Newverifdetaillibelle_212=""
STATE_Newverifdetaillibelle_213=""
STATE_Newverifdetaillibelle_214=""
STATE_verifmoduleid="208, 209, 210, 211, 212, 213, 214"
所以我想根据list/array
获取不为空的变量
在我的示例中,STATE_verifmoduleid
包含以下内容:
STATE_verifmoduleid="208, 209, 210, 211, 212, 213, 214"
所以基本上,我应该只捕获 STATE_Newverifdetaillibelle_208="test"
因为它不是空的。
我写了这段代码,但它没有返回变量 STATE_Newverifdetaillibelle_208="test"
中包含的值 "TEST"
Dim STATE_Newverifdetaillibelle_(1000)
Dim verifmoduleid
'Here the code of the form/request.form, bla bla bla which is working ...
Dim CheckVerifyModulesIDs,CheckVerifyModulesID, Citems
CheckVerifyModulesIDs = replace(STATE_verifmoduleid," ","")
CheckVerifyModulesID = Split(CheckVerifyModulesIDs,",")
For each Citems in CheckVerifyModulesID
if (STATE_Newverifdetaillibelle_(Citems)) <> "" then
response.write (STATE_Newverifdetaillibelle_(Citems)) & "<br>"
end if
next
我该如何解决?
所有变量 STATE_Newverifdetaillibelle_*
都是单独声明的,因此您需要将每个变量名称动态构建为一个字符串,并将该字符串作为表达式求值。
STATE_Newverifdetaillibelle_208 = "test"
STATE_Newverifdetaillibelle_209 = ""
STATE_Newverifdetaillibelle_210 = ""
STATE_Newverifdetaillibelle_211 = ""
STATE_Newverifdetaillibelle_212 = ""
STATE_Newverifdetaillibelle_213 = ""
STATE_Newverifdetaillibelle_214 = ""
STATE_verifmoduleid = "208, 209, 210, 211, 212, 213, 214"
' Here the code of the form/request.form, bla bla bla which is working ...
ids = Split(Replace(STATE_verifmoduleid," ",""),",")
For Each id in ids
v = Eval("STATE_Newverifdetaillibelle_" & id)
If v <> "" then
Response.Write v & "<br>"
End If
Next
另一种方式是把所有的值都放到一个数组或者字典中,那就不用Eval
.
我有这些变量
STATE_Newverifdetaillibelle_208="test"
STATE_Newverifdetaillibelle_209=""
STATE_Newverifdetaillibelle_210=""
STATE_Newverifdetaillibelle_211=""
STATE_Newverifdetaillibelle_212=""
STATE_Newverifdetaillibelle_213=""
STATE_Newverifdetaillibelle_214=""
STATE_verifmoduleid="208, 209, 210, 211, 212, 213, 214"
所以我想根据list/array
获取不为空的变量在我的示例中,STATE_verifmoduleid
包含以下内容:
STATE_verifmoduleid="208, 209, 210, 211, 212, 213, 214"
所以基本上,我应该只捕获 STATE_Newverifdetaillibelle_208="test"
因为它不是空的。
我写了这段代码,但它没有返回变量 STATE_Newverifdetaillibelle_208="test"
"TEST"
Dim STATE_Newverifdetaillibelle_(1000)
Dim verifmoduleid
'Here the code of the form/request.form, bla bla bla which is working ...
Dim CheckVerifyModulesIDs,CheckVerifyModulesID, Citems
CheckVerifyModulesIDs = replace(STATE_verifmoduleid," ","")
CheckVerifyModulesID = Split(CheckVerifyModulesIDs,",")
For each Citems in CheckVerifyModulesID
if (STATE_Newverifdetaillibelle_(Citems)) <> "" then
response.write (STATE_Newverifdetaillibelle_(Citems)) & "<br>"
end if
next
我该如何解决?
所有变量 STATE_Newverifdetaillibelle_*
都是单独声明的,因此您需要将每个变量名称动态构建为一个字符串,并将该字符串作为表达式求值。
STATE_Newverifdetaillibelle_208 = "test"
STATE_Newverifdetaillibelle_209 = ""
STATE_Newverifdetaillibelle_210 = ""
STATE_Newverifdetaillibelle_211 = ""
STATE_Newverifdetaillibelle_212 = ""
STATE_Newverifdetaillibelle_213 = ""
STATE_Newverifdetaillibelle_214 = ""
STATE_verifmoduleid = "208, 209, 210, 211, 212, 213, 214"
' Here the code of the form/request.form, bla bla bla which is working ...
ids = Split(Replace(STATE_verifmoduleid," ",""),",")
For Each id in ids
v = Eval("STATE_Newverifdetaillibelle_" & id)
If v <> "" then
Response.Write v & "<br>"
End If
Next
另一种方式是把所有的值都放到一个数组或者字典中,那就不用Eval
.