ASP-Classic从动态字段中获取信息

时间:2018-03-26 08:59:39

标签: debugging asp-classic dynamic-programming

我有一个旧的ASP页面,其中包含一个表单,但由于某种原因,代码的一部分已经不再起作用了。 代码之前正在工作,因为我在数据库中编写了表单的内容,并且我有过去的值。

我的页面的简短描述: 我有一个[选择多个]字段,当你选择一个(或多个)选项时,我创建另一个输入字段(对于每个选定的选项,新的fied)。该字段的ID是FSRow_ + de selected选项的编辑值(没有空格,逗号,......)。

当我提交表单时,我想阅读新字段的内容,以便将此信息写入我的数据库。

一个例子: 假设我有两个选择的选项,以简化:" OptionA"和" OptionB"然后我创建两个新字段(来自源代码):

<input name="FSRow_OptionA" id="FSRow_OptionA" type="text">
<input name="FSRow_OptionB" id="FSRow_OptionB" type="text">

当我提交表单时,我有这段代码:

if request.form()
...
getSelectedValues = split(request("OptionList"), ",")
    for each li in getSelectedValues 
        li = replace(li, "'", "''")
        li = replace(li, "||", ",")
        fsrow = trim(request("FSRow_" & replace(replace(replace(replace(replace(trim(li), " ", ""), "&", ""), "+", ""), ",", ""), "|", "")))
        if fsrow <> "" then
            [write to DB with dynamic field]
        else
            [only write selected item]
        end if
    next

当我查看我的数据库时我只有所选项目的信息(所以,我的我的其他代码)。不是我的动态字段的内容。所以我想变量&#34; fsrow&#34;即使我的新字段包含一些文字,也总是为空。

我的问题:

  1. 如何获取动态输入字段的内容?
  2. 任何想法可能是错的,因为它在2017年7月工作并且没有任何改变。
  3. [不再需要,找到解决方案]我试图设置警报或写入控制台进行调试,但这不起作用。我如何在我的&#34;中为每个&#34; -loop进行调试?
  4. 修改/更新1

    正如Ricardo Pontual评论的那样,我可以使用&#34; Response.End&#34;结合&#34; Response.Write&#34;之前。

    如果我这样做:

    Response.Write(li)
    Response.Write("## FSRow_" & li & " ## ")
    Response.Write("->" & request("FSRow_" & li))
    

    我得到了这个结果:

    OptionA## FSRow_OptionA ## ->
    

    但是在我的表格/输入字段中,我写了#34; test&#34;在id&#34; FSRow_OptionA&#34; ...

    的字段中

    编辑/更新2

    使用非动态输入字段,我可以完美地读取和写入数据库中的值。 因此,动态字段确实存在问题......

1 个答案:

答案 0 :(得分:0)

发现问题。这是非常古老的代码,从几年前开始,我没有写过,问题在于&lt;形式&GT;和&lt; /形式&GT;

旧代码(不工作)

<table>
    <form>
        <tr>
        ...
        </tr>
    </form>
</table>

通过以下方式更改了代码:

<form>
    <table>
        <tr>
        ...
        </tr>
    </table>
</form>

我改变了&lt;的顺序表&gt;和&lt;形式&GT;它现在有效!