在网页上动态添加行,然后保存在db中

时间:2015-03-09 19:12:44

标签: asp-classic dynamic-programming dynamic-data

我有一个网页,经典的asp连接到oracle db,这里我将使用数据库填充一个组合框,将从组合框中选择一个值,它会显示4个字段,我会在那些字段中输入数据,它会就像一排,然后应该有一个+按钮,一个新的动态空行将出现。有4个空字段,将在其中输入一些数据。如果我继续按+按钮行继续出现和在最后当我的条目完成后,将按下保存按钮,所有动态行都应插入数据库。 有人可以通过示例或指导或指导来帮助我完成这项工作。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

我的建议是在JavaScript中完成。有四个隐藏字段用于保存新输入的值,并在每个+按钮按下一些分隔符(例如$)后将值附加到它们。 当用户单击“保存”按钮时,您将在已发布的asp文件中获取所有四个隐藏字段值,然后只需将值拆分并插入数据库。

如果您希望输入的值仍然存在,即使用户刷新页面,也可以使用会话存储输入的值。我希望这会帮助你开始。感谢。

答案 1 :(得分:0)

你别无选择,只能在javascript中这样做。创建一个用于保存行的空表。每次用户单击“+”时,使用类似jQuery的库动态地向表中添加行。 新行中的字段可以在其名称后附加或添加一个整数。在javascript中,您还可以填写隐藏的表单字段,以跟踪当前页面上有多少行。例如:

<table>
<tr>
    <td>3           <input type="Hidden" name="quantity[0]" value="3"/></td>
    <td>apples      <input type="Hidden" name="item[0]" value="apples"/></td>
    <td>fruits      <input type="Hidden" name="type[0]" value="fruits"/></td>
    <td>2 days      <input type="Hidden" name="age[0]" value="age"/></td>
</tr>
<tr>
    <td>7           <input type="Hidden" name="quantity[1]" value="7"/></td>
    <td>carrots     <input type="Hidden" name="item[1]" value="carrots"/></td>
    <td>vegetables  <input type="Hidden" name="type[1]" value="vegetables"/></td>
    <td>3 days      <input type="Hidden" name="age[1]" value="3"/></td>
</tr>
</table>
<input type="Hidden" name="itemcount" value="1"/>

在ASP中,您需要查看“itemcount”字段以查看需要查看的项目数。 然后你可以创建一个循环并循环request.form范围:

<% 
    Dim i
    For i = 0 to Cint(request.form("itemcount"))

        response.write(request.form("quantity[" & i & "]"))
        response.write(request.form("item[" & i & "]"))
        response.write(request.form("type[" & i & "]"))
        response.write(request.form("age[" & i & "]"))

    Next 'i
 %>

请注意,我没有测试此代码,只是为了给你一个想法。 您可以以任何您喜欢的方式将字段的名称添加到字段的名称中(无论您是否容易解析),但这种方式(括号内)基于W3C草案提案,它基于表单嵌套数据:

http://www.w3.org/TR/html-json-forms/