从数据库取出一行数据分别放在文本框中,显示在页面上,提交表单时如何判断用户选择了那一列?

时间:2022-09-23 08:25:46
比如数据库中有一张表储存用户信息。列为:姓名,电话,性别,etc
当我把用户A的数据以表单的形式显示在页面上供管理员修改(姓名,电话,性别的值都放在文本框中),在提交表单的时候如何判断管理员修改了哪一列信息,因此可以只修改数据库中对应的那一列?

14 个解决方案

#1


表单的数据都是一起提交的,没有改哪个字段提交哪个字段的

#2


给个思路:这一行输出两遍,其中一遍是隐藏的
提交的时候,自己对比各列

#3


引用 2 楼 ccs02287 的回复:
给个思路:这一行输出两遍,其中一遍是隐藏的
提交的时候,自己对比各列


主要是这一行的数据也是循环输出的,而我现在想把每一个数值与数据库表的列名对应上,有什么好办法么?

#4


想把每一个数值与数据库表的列名对应上

是什么鬼?

#5


表示不太清楚楼主的循环输出。。表单输出为什么要循环呢?。。点赞2楼的方法

#6


可以先把数据库里面读到的放在作用域,提交之前加个JS验证,我的理解啊

#7


引用 5 楼 ygjlovebl 的回复:
表示不太清楚楼主的循环输出。。表单输出为什么要循环呢?。。点赞2楼的方法

嗯……因为表的列数很多,所以我把各列值放入arraylist里,在jsp页面循环输出的……
如果一个表有40多列,也要在jsp里一行行按照javabean输出么?求指教

#8


我也不太懂哦,有个想法,你要修改哪一行,就事先将这一行的数据备份一份(试试用jquery获取你要修改的table的行内容),提交表单时对比你修改的该行数据,有变化就ajax更新异步刷新数据库就应该可以了。

#9


引用 7 楼 sunny___10的回复:
Quote: 引用 5 楼 ygjlovebl 的回复:

表示不太清楚楼主的循环输出。。表单输出为什么要循环呢?。。点赞2楼的方法

嗯……因为表的列数很多,所以我把各列值放入arraylist里,在jsp页面循环输出的……
如果一个表有40多列,也要在jsp里一行行按照javabean输出么?求指教

之前以为你是只有一行数据。。。

#10


数据多且乱的话,哪一行获得了焦点,就把哪一行数据备份,失去焦点的时候进行判断是否更改了数据,提交的时候只更新这个数据。
如果数据少,就全部更新。

#11


为何不在每一列的数据后加个修改的按钮,按钮附加这一列的值,然后点击的时候进行数据库的更新

#12


全部的列更新

#13


你把每一行数据之前加上一个多选框,多选框的name就是你数据里存的id就行了    管理员修改的时候选择哪些多选框不就是你数据库里需要改的 

<c:forEach items="${list}" var="item">
         <tr>
             <td><input type="checkbox" name="shangPinId" value="${item.id}"></td>
             <td> <img src="${item.imageUrl}" width="80" height="80"/></td>
         <td>${item.name}</td>
         <td>${item.danJia}</td>
         <td>${item.kuCun}</td>
         <td><input type="text" name="shuLiang" /></td>
         <td><a href="javascript:operate('shangPin/mainToUpdate?index=${page.currentPage}&id=${item.id}')">编辑</a></td>
         <td><a href="javascript:operate('shangPin/Del?index=${page.currentPage}&id=${item.id}')">删除</a></td>
</tr>
         </c:forEach>

从数据库取出一行数据分别放在文本框中,显示在页面上,提交表单时如何判断用户选择了那一列?

#14


最简单的,你按顺序读取就好了。

稍微负责点的话,你可以对每一个文本,自定义编号,

从这个编号,你能定位你取得哪一列,哪一行。

#1


表单的数据都是一起提交的,没有改哪个字段提交哪个字段的

#2


给个思路:这一行输出两遍,其中一遍是隐藏的
提交的时候,自己对比各列

#3


引用 2 楼 ccs02287 的回复:
给个思路:这一行输出两遍,其中一遍是隐藏的
提交的时候,自己对比各列


主要是这一行的数据也是循环输出的,而我现在想把每一个数值与数据库表的列名对应上,有什么好办法么?

#4


想把每一个数值与数据库表的列名对应上

是什么鬼?

#5


表示不太清楚楼主的循环输出。。表单输出为什么要循环呢?。。点赞2楼的方法

#6


可以先把数据库里面读到的放在作用域,提交之前加个JS验证,我的理解啊

#7


引用 5 楼 ygjlovebl 的回复:
表示不太清楚楼主的循环输出。。表单输出为什么要循环呢?。。点赞2楼的方法

嗯……因为表的列数很多,所以我把各列值放入arraylist里,在jsp页面循环输出的……
如果一个表有40多列,也要在jsp里一行行按照javabean输出么?求指教

#8


我也不太懂哦,有个想法,你要修改哪一行,就事先将这一行的数据备份一份(试试用jquery获取你要修改的table的行内容),提交表单时对比你修改的该行数据,有变化就ajax更新异步刷新数据库就应该可以了。

#9


引用 7 楼 sunny___10的回复:
Quote: 引用 5 楼 ygjlovebl 的回复:

表示不太清楚楼主的循环输出。。表单输出为什么要循环呢?。。点赞2楼的方法

嗯……因为表的列数很多,所以我把各列值放入arraylist里,在jsp页面循环输出的……
如果一个表有40多列,也要在jsp里一行行按照javabean输出么?求指教

之前以为你是只有一行数据。。。

#10


数据多且乱的话,哪一行获得了焦点,就把哪一行数据备份,失去焦点的时候进行判断是否更改了数据,提交的时候只更新这个数据。
如果数据少,就全部更新。

#11


为何不在每一列的数据后加个修改的按钮,按钮附加这一列的值,然后点击的时候进行数据库的更新

#12


全部的列更新

#13


你把每一行数据之前加上一个多选框,多选框的name就是你数据里存的id就行了    管理员修改的时候选择哪些多选框不就是你数据库里需要改的 

<c:forEach items="${list}" var="item">
         <tr>
             <td><input type="checkbox" name="shangPinId" value="${item.id}"></td>
             <td> <img src="${item.imageUrl}" width="80" height="80"/></td>
         <td>${item.name}</td>
         <td>${item.danJia}</td>
         <td>${item.kuCun}</td>
         <td><input type="text" name="shuLiang" /></td>
         <td><a href="javascript:operate('shangPin/mainToUpdate?index=${page.currentPage}&id=${item.id}')">编辑</a></td>
         <td><a href="javascript:operate('shangPin/Del?index=${page.currentPage}&id=${item.id}')">删除</a></td>
</tr>
         </c:forEach>

从数据库取出一行数据分别放在文本框中,显示在页面上,提交表单时如何判断用户选择了那一列?

#14


最简单的,你按顺序读取就好了。

稍微负责点的话,你可以对每一个文本,自定义编号,

从这个编号,你能定位你取得哪一列,哪一行。