注册 登录
编程论坛 ASP技术论坛

如何实现动态增加一行和删除一行。

atian 发布于 2010-05-14 20:51, 2410 次点击
在录入数据时,如何实现动态增加和删除一行的文本框或下接菜单。然后保存是,是循环保存的。
12 回复
#2
gupiao1752010-05-14 21:22
参考一下这个:逐行增加文本框!
<script>
function addtext()
{
var br=document.createElement("br");
document.body.appendChild(br);
var te=document.createElement("input");
te.type="text";
document.body.appendChild(te);

}
</script>
<input type="button" value="addtext" onclick="addtext()">
不好意思,录入数据和动态增加什么关系,你要达到什么效果,请详细解释下!也不太理解你所说的保存是,是循环保存的?这句什么意思?

#3
atian2010-05-14 22:21
程序代码:
<html>

<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>摘&nbsp; 要</title>
</head>

<body>

<table align="center" border="0" cellspacing="1" width="800">
  <tr>
    <td width="100%">
      <p align="center"><font size="5" face="宋体" color="#008000"><b>记&nbsp;   
      账&nbsp; 凭&nbsp; 证</b></font></td>   
  </tr>
  <tr>
    <td width="100%">
      <p align="center"><font size="5" face="宋体" color="#008000"><span style="letter-spacing: 4pt">VOUCHER</span></font></td>
  </tr>
  <tr>
    <td width="100%">
      <table border="0" cellpadding="0" cellspacing="0" width="100%">
        <tr>
          <td width="33%"></td>
          <td width="33%">
            <hr color="#008080">
          </td>
          <td width="34%"></td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td width="100%">
      <table border="0" cellpadding="0" cellspacing="0" width="100%">
        <tr>
          <td width="12%"></td>
          <td width="12%"></td>
          <td width="12%">
            <p align="right">日期:</td>
          <td width="25%"></td>
          <td width="13%"></td>
          <td width="13%"></td>
          <td width="13%">
            <p align="right"><font color="#008000">第&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;   
            号</font></p>
          </td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td width="100%">
      <table border="0" cellpadding="0" cellspacing="0" width="100%">
        <tr>
          <td width="12%"></td>
          <td width="12%"></td>
          <td width="12%"></td>
          <td width="12%"></td>
          <td width="13%"></td>
          <td width="13%"></td>
          <td width="13%"></td>
          <td width="13%"><font color="#008000">VOUCHER NO.</font></td>   
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td width="100%" align="center">
      <table border="1" cellspacing="0" width="800" cellpadding="0" bordercolorlight="#008080" bordercolordark="#008080" height="220">
        <tr>
          <td width="240" align="center" height="45">
            <p align="center" style="line-height: 100%; word-spacing: 0; margin-top: 0; margin-bottom: 0"><font color="#008000"><b>摘&nbsp;&nbsp;&nbsp;   
            要</b></font>
            <p align="center" style="line-height: 100%; word-spacing: 0; margin-top: 0; margin-bottom: 0"><font color="#008000"><b>DESCRIPTION</b></font></td>
          <td width="120" align="center" height="45">
            <p style="line-height: 100%; margin-top: 0; margin-bottom: 0"><font color="#008000"><b>科目代码</b></font></p>
            <p style="line-height: 100%; margin-top: 0; margin-bottom: 0"><font color="#008000"><b>GEN.LED.CODE</b></font></td>
          <td width="200" align="center" height="45">
            <p style="line-height: 100%; margin-top: 0; margin-bottom: 0"><font color="#008000"><b>科 目 名 称</b></font></p>   
            <p style="line-height: 100%; margin-top: 0; margin-bottom: 0"><font color="#008000"><b>GEN.LED.A/C</b></font></p>
          </td>
          <td width="120" align="center" height="45">
            <p style="line-height: 100%; margin-top: 0; margin-bottom: 0"><font color="#008000"><b>借 方 金 额</b></font></p>   
            <p style="line-height: 100%; margin-top: 0; margin-bottom: 0"><font color="#008000"><b>DEBIT   
            AMT.</b></font></p>
          </td>
          <td width="120" align="center" height="45">
            <p style="line-height: 100%; margin-top: 0; margin-bottom: 0"><font color="#008000"><b>贷 方 金 额</b></font></p>   
            <p style="line-height: 100%; margin-top: 0; margin-bottom: 0"><font color="#008000"><b>CREDIT   
            AMT.</b></font></p>
          </td>
        </tr>
        <tr>
          <td width="240" height="25" align="left"><b> </b></td>
          <td width="120" height="25" align="left">&nbsp;</td>
          <td width="200" height="25"><b> </b></td>
          <td width="120" height="25" align="right">&nbsp;</td>         
          <td width="120" height="25" align="right">&nbsp;</td>
        </tr>
        <tr>
          <td width="240" height="25" align="left"><b></b>&nbsp;</td>
          <td width="120" height="25" align="left">&nbsp;</td>
          <td width="200" height="25"><b> </b></td>
          <td width="120" height="25" align="right">&nbsp;</td>
          <td width="120" height="25" align="right">&nbsp;</td>
        </tr>
        <tr>
          <td width="240" height="25" align="left"><b> </b></td>
          <td width="120" height="25" align="left">&nbsp;</td>
          <td width="200" height="25"><b> </b></td>
          <td width="120" height="25" align="right">&nbsp;</td>
          <td width="120" height="25" align="right">&nbsp;</td>
        </tr>
        <tr>
          <td width="240" height="25" align="left"><b></b>&nbsp;</td>
          <td width="120" height="25" align="left">&nbsp;</td>
          <td width="200" height="25"><b> </b></td>
          <td width="120" height="25" align="right">&nbsp;</td>
          <td width="120" height="25" align="right">&nbsp;</td>
        </tr>
        <tr>
          <td width="240" height="25" align="left"><b></b>&nbsp;</td>
          <td width="120" height="25" align="left">&nbsp;</td>
          <td width="200" height="25"><b> </b></td>
          <td width="120" height="25" align="right">&nbsp;</td>
          <td width="120" height="25" align="right">&nbsp;</td>
        </tr>
        <tr>
          <td width="240" height="25" align="left"><b></b>&nbsp;</td>
          <td width="120" height="25" align="left">&nbsp;</td>
          <td width="200" height="25"><b> </b></td>
          <td width="120" height="25" align="right">&nbsp;</td>
          <td width="120" height="25" align="right">&nbsp;</td>
        </tr>
        <tr>
          <td width="240" height="25"><font color="#008000"><b>&nbsp;附单据&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   
            张&nbsp; ATTACHMENTS</b></font></td>   
          <td width="120" height="25" align="left">
            <p align="left">&nbsp;</td>
          <td width="200" height="25">
            <p align="center"><font color="#008000"><b>合&nbsp; 计(TOTAL)</b></font></p>   
          </td>
          <td width="120" height="25" align="right">&nbsp;</td>
          <td width="120" height="25" align="right">&nbsp;</td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td width="100%" height="2">
    </td>
  </tr>
  <tr>
    <td width="100%">
      <table border="0" cellpadding="0" cellspacing="0" width="100%">
        <tr>
          <td width="12%"><font color="#008000">记账:</font></td>
          <td width="12%"></td>
          <td width="12%">
            <p align="right"><font color="#008000">出纳:</font></td>
          <td width="12%"></td>
          <td width="13%">
            <p align="right"><font color="#008000">复核:</font></td>
          <td width="13%"></td>
          <td width="13%">
            <p align="right"><font color="#008000">制单:</font></td>
          <td width="13%"></td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td width="100%">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr>
        <td width="20%"></td>
        <td width="20%"></td>
        <td width="20%"></td>
        <td width="20%"></td>
        <td width="20%"></td>
      </tr>
    </table>
    </td>
  </tr>
</table>

<p align="center"> </p>

</body>

</html>


就如这样的。但保存时,每一行实际上都是在相同的表中。如何区分出,借方金额和贷方金额来

#4
gupiao1752010-05-15 14:39
你只需要区分出或取出借方金额和贷方金额来?吗?
#5
gupiao1752010-05-15 14:49
    还有你上面的表格只是一个表格,有何意义?不好意思,恕我愚顿,真的听不懂你想表达的意思!什么叫:就如这样的。但保存时,每一行实际上都是在相同的表中,我文科水平差,理解能力差,实在不解这句的意思,请详细解释,最好能有效果贴图!
#6
atian2010-05-15 16:37
那个是表格,但是要放入文本框,或下拉菜单。因为设计的思路没有出来,所以就弄了个表格。

我要实现的目的就是。在表单中,按一下保存。之后每一行的数据都是循环保存的。没有数据的行就不保存。然后借方金额与贷方金额都是保存在同一个字段内,只是有个借货标志来区分是借方还是贷方。
比如:
数据库结构字段:hh(行号)  zy(摘要)  je(金额)  jdbz(借贷标志)

当在第1行的借方文本框中输入数字时,则保存时,hh就是1,je 就是数字,jdbz就是借方,zy摘要
当在第2行的贷方文本框中输入数字时,则保存时, hh就是2, je 就是数字,jdbz就是贷方,zy自动显示第一行输入的摘要,也可以修改。
当在第3行的..........以此类推。
#7
hams2010-05-15 17:21
用数组
#8
gupiao1752010-05-15 18:48
提供个思路:
方法1:在表格外层建立<form>,每一行建立文本框并加id,在另外一个页面处理这些数据!这是最通常也最好理解的方法!
     优点:好理解,但是事先必须在每行手工建立文本框,比较麻烦,灵活性不够!每加一行都必须手工改变代码!
方法2:如果你要纯JS来处理,并要保存到数据库,那就只能用ajax了!而且需要借助DOM操作,代码绝对不在少数!这个技巧性更强,写起来很麻烦,但是灵活性优 于前者!
#9
atian2010-05-15 19:18
能否再详细的讲解一下方法一。

最好能用代码显示出来。
#10
gupiao1752010-05-15 19:45

<form action="a.asp" method="post">

<table>
<tr>
          <td width="240" height="25" align="left"><input type="hidden" value="1" name="hh"></td>
          <td width="120" height="25" align="left"><input type="text" value="" name="je"></td>
          <td width="200" height="25"><input type="text" value="" name="cw"></td>
          <td width="120" height="25" align="right"><input type="text" value="" name="hj"></td>         
</tr>
<tr>
          <td width="240" height="25" align="left"><input type="hidden" value="2" name="hh"></td>
          <td width="120" height="25" align="left"><input type="text" value="" name="je"></td>
          <td width="200" height="25"><input type="text" value="" name="cw"></td>
          <td width="120" height="25" align="right"><input type="text" value="" name="hj"></td>        
</tr>
<table>
</form>

#11
gupiao1752010-05-15 19:56
提交页:
<form action="a.asp" method="post">
<table>
<tr>
          <td width="240" height="25" align="left"><input type="hidden" value="1" name="hh"></td>
          <td width="120" height="25" align="left"><input type="text" value="" name="je"></td>
          <td width="200" height="25"><input type="text" value="" name="cw"></td>
          <td width="120" height="25" align="right"><input type="text" value="" name="hj"></td>         
</tr>
<tr>
          <td width="240" height="25" align="left"><input type="hidden" value="2" name="hh2"></td>
          <td width="120" height="25" align="left"><input type="text" value="" name="je2"></td>
          <td width="200" height="25"><input type="text" value="" name="cw2"></td>
          <td width="120" height="25" align="right"><input type="text" value="" name="hj2"></td>        
</tr>
<table>
</form>

a.asp内容页:

<%
'获取第一行数据!
hh=request.form("hh")
je=request.form("je")
cw=request.form("cw")
hj=request.form("hj")
hh=request.form("hh")
je=request.form("je")
cw=request.form("cw")
hj=request.form("hj")
‘获取第二行数据!以此类推!
hh2=request.form("hh2")
je2=request.form("je2")
cw2=request.form("cw2")
hj2=request.form("hj2")
’SQL数据处理。。。,你自己操作吧,想添加!或者怎么样都可以,建议你先由一行开始,测试成功后再加多条SQL语句,用循环也可以,逐条执行也可以!看你个人喜好了!
%>
#12
atian2010-05-16 14:49
嗯,不错,思路有点明白了,你上面的是有两行的数据,但是假如有多行了,怎么办呢。难道写一大堆的文本框,一条一条的SQL语句写入数据库。

能否,用循环来实现批量记录的添加。多谢。

#13
gupiao1752010-05-17 14:43
用循环也可以,可前提你必须知道自己要添加几行,当然你自己也可以动态去设置,代码根据需求而定,具体操作自己想了。不好意思,我累了。
1