表单中
id  name  value
1    abc     20
2    xyz     29
3    def     33
我的目的是 在只修改value的值后,如何在表单提交时将value的值和name的值一起提交 ?  如果是修改多条记录的话 那么如何将修改的value及其对应的name提交呢?
              jsp表单

解决方案 »

  1.   

    提交的bean里面定义好数组name 然后后台获取。
      

  2.   

    不用把name和value传过去,把id作为字符串传过去。中间用逗号隔开,如"1,2,3".然后在后台用String 的split(",")方法取得多个id,分别取出对象再修改
      

  3.   


    谢谢你提出的这个方法 但是因为我考虑的不全面所以上面的例子不符合我的实际需求。实际上应该是这样的
    id  name  value
     1    abc     20
     1    xyz     29
     1    def     33
    也就是说这个value值 是由id  和name 唯一确定的 单单id是不够的 所以我才想将name一起传过去
    update tablename set value=? where  id=? and name=?  是这样的
      

  4.   

    用隐藏表单阈来做啊<input name="id" value="ID的值">
    <input name="name" value="NAME的值">
    <input name="value" value="VALUE的值">
    后台以数组的形势接收三组值就可以了。分别是id,name,value
      

  5.   

    我有试过用隐藏域啊 ,可是出现的问题是 我只改两条记录的话 用hidden传过去的name依旧是全部的name不是与value对应的name值啊 这该怎么解决啊?
      

  6.   


    谢谢你提出的这个方法 但是因为我考虑的不全面所以上面的例子不符合我的实际需求。实际上应该是这样的
    id  name  value
     1    abc     20
     1    xyz     29
     1    def     33
    也就是说这个value值 是由id  和name 唯一确定的 单单id是不够的 所以我才想将name一起传过去
    update tablename set value=? where  id=? and name=?  是这样的
    可以尝试下,用id和mame之间加个标识符,成一个字符串。比如id为1,name为xx.那么就为1*xx.然后再把下一组的2*yy和1*xx组成一个新的字符串,用逗号隔开。
    然后在后台可以用String.split(",")的到用逗号分隔的。然后转成String再调用split("*");
      

  7.   

    我有试过用隐藏域啊 ,可是出现的问题是 我只改两条记录的话 用hidden传过去的name依旧是全部的name不是与value对应的name值啊 这该怎么解决啊?
    这个只要添加一个标记字段,如果更改了就标记一下,以数组方式传入后台就行了。不过这数据库字段设计感觉不太合理啊
      

  8.   

    我有试过用隐藏域啊 ,可是出现的问题是 我只改两条记录的话 用hidden传过去的name依旧是全部的name不是与value对应的name值啊 这该怎么解决啊?
    这个只要添加一个标记字段,如果更改了就标记一下,以数组方式传入后台就行了。不过这数据库字段设计感觉不太合理啊
    谢谢,能说的详细一些吗?如何添加一个标记字段呢?另外这并不是一个实际的数据库表,就是一个简化出来的例子。
      

  9.   

    action里定义:
    int[] id;
    String[] name;
    String[] value;
    比如遍历id的都是按顺序来处理的
    添加continue;就可以连续修改多个了,也要把方法写在里面。
      

  10.   

    update table set ... where id in(1,2,3) 为什么要分隔呢?
      

  11.   

    我有试过用隐藏域啊 ,可是出现的问题是 我只改两条记录的话 用hidden传过去的name依旧是全部的name不是与value对应的name值啊 这该怎么解决啊?
    这个只要添加一个标记字段,如果更改了就标记一下,以数组方式传入后台就行了。不过这数据库字段设计感觉不太合理啊
    谢谢,能说的详细一些吗?如何添加一个标记字段呢?另外这并不是一个实际的数据库表,就是一个简化出来的例子。
    <input name="id" type="hidden" value="1"/>
    <input name="name" type="hidden" value="abc"/>
    <input name="value" value="20" onchange="changeFlag('1_abc')"/>
    <input id="1_abc" name="flag" type="hidden" value="-1"/>
    <script>
        changeFlag=function(id){
          id='#'+id;
          $(id).value(1);
        }
    </script>
    后台接收的时候先判断flag有没有改为1,如果改了那进行更新。