我有一个旧的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 :
正如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 :
使用非动态输入字段,我可以完美地读取和写入数据库中的值。 因此,动态字段确实存在问题......
答案 0 :(得分:0)
发现问题。这是非常古老的代码,从几年前开始,我没有写过,问题在于&lt;形式&GT;和&lt; /形式&GT;
旧代码(不工作)
<table>
<form>
<tr>
...
</tr>
</form>
</table>
通过以下方式更改了代码:
<form>
<table>
<tr>
...
</tr>
</table>
</form>
我改变了&lt;的顺序表&gt;和&lt;形式&GT;它现在有效!