【问题标题】:ASP - Changing variable name (numbering) or adding numbers to a variable in asc order to assign valuesASP - 更改变量名称(编号)或按升序向变量添加数字以分配值
【发布时间】:2016-04-13 13:08:16
【问题描述】:

如何更改变量名称的升序编号以将值分配给它们。例如:car_1、car_2、car_3、car_4........等等..我的编码是这样的;

for i=1 to 20
var(i) = request.form("car_"i)
next

foreach ......so on........

response.write(var(12) & "<br/>")

我需要一种方法来增加“car_”的数量以将每个汽车值分配给“var”数组。我试图像这样添加它:

var(i) = request.form("car_"&i)

var(i) = request.form("car_"i"")

这些都不起作用。非常感谢您帮助解决这个问题。

【问题讨论】:

  • 您使用的是 ASP.NET 还是 ASP Classic?哪种编程语言?代码和标签到处都是,所以不清楚这里发生了什么。至于“给变量编号”,这不就是数组的用途吗?从代码的外观来看,您需要的是一些关于您使用的任何语言的基本语法的介绍性教程。
  • @DnoreGen:如果这是您使用的实际代码,那么您应该从 ASP Classic 和 VB 脚本的介绍性教程开始。这段代码甚至在语法上都不正确。这不是在 VB 脚本中使用数组的方式,字符串连接需要两个字符串值之间的运算符,等等。
  • 你有错误信息吗?
  • @DnoreGen:感到沮丧并试图侮辱那些在这里帮助你的人并不能真正解决手头的问题。不过,可能会进行一些调试。例如,实际发送到此页面的表单数据是什么?您用于尝试读取该表单数据的特定代码行是什么?问题和 cmets 中存在许多尝试,您当前正在使用哪一个,它以什么方式失败?当您调试它时,您看到的确切运行时值/行为是什么?你必须帮助我们来帮助你。
  • @DnoreGen 看起来您可能在经典 ASP 页面中使用 JScript (ECMAScript 的 Microsoft 实现),但是从这个有限的示例中很难判断我可以看到参考到&amp; 进行连接,它是VBScript,但是你使用foreach 这是JScript 语法,你能提供一个Minimal, Complete, and Verifiable example吗?

标签: variables vbscript asp-classic


【解决方案1】:

您可以使用&amp; 运算符连接VBScript 中的值。如:

"car_" & i

为了演示,请继续以 this online code editor 之类的方式运行此代码(我怀疑仅限 IE):

<html>
    <head>
        <script type="text/vbscript">
            For i = 1 To 20
                document.write "car_" & i
                document.write "<br />"
            Next
        </script>
    </head>
    <body>
    </body>
</html>

产生以下输出:

car_1
car_2
car_3
car_4
car_5
car_6
car_7
car_8
car_9
car_10
car_11
car_12
car_13
car_14
car_15
car_16
car_17
car_18
car_19
car_20

这同样适用于服务器端 VBScript:

<body>
    <% For i = 1 To 20 %>
        Car_<%=i%><br />
    <% Next %>
</body>

产生相同的输出。

【讨论】:

  • 这是针对 VBScript 的。我需要它的 asp 经典。这不起作用。
  • @DnoreGen:VBScript 是 ASP Classic 中使用的语言。您使用的是什么其他语言,您是如何做到的?如果您使用某些 3rd 方 ASP 组件来使用非 VBScript 语言,那么问题可能出在此。
  • @David Classic ASP 支持开箱即用的 VBScript 和 JScript,其他 Active Scripting 语言也可以从第三方下载。
  • @Lankymart:很公平,尽管 OP 的最后评论仍然没有意义。我怀疑他们对这里使用的技术有些困惑,不知道他们使用的是哪种语言肯定会导致语法问题。
  • 我认为您对 VBScript 的看法是正确的,他们只是没有很好地解释它。另外他们有another one...:O
【解决方案2】:

这个例子不是很清楚,理想情况下它可能会更好,但我越看它越觉得你在使用 VBScript,所以我将尝试解释你正在尝试做的事情。

Dim i
Dim min_i: min_i = 1
Dim max_i: max_i = 20
Dim vars(max_i)

For i = min_i To max_i
  vars(i) = Request.Form("car_" & i)
Next
'Returns the value of Request.Form("car_12")
Call Response.Write(vars(12) & "<br />")

这种方法是合理的,您只需将i 的值连接到Request.Forms 值的名称上(&amp;)。


值得指出的是,这与@Davidtheir answer 中的建议没有什么不同,只是此示例通过将值输出到Array 而不是直接输出到响应缓冲区。

【讨论】:

    猜你喜欢
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 2012-07-31
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-16
    相关资源
    最近更新 更多