列出所有user信息,更改想要修改的多条信息,然后提交保存,可以实现吗?

时间:2021-06-15 08:12:05
列出所有user信息,更改想要修改的多条信息,然后提交保存,可以实现吗?
我是这样想的:在每条信息前加个checkbox,如果想要修改哪个user,就选种他前面的checkbox并进行修改,然后点‘保存’更新所更改的那些user。

如果可以怎么实现?请说得具体些好吗?

7 个解决方案

#1


up

#2


checkbox提交到后台就是一个数组,你可以判断每个元素是否被选中

#3


<jsp:useBean id="addressbook" class="addressbook.bean.AddressBookBean" scope="session"/>

<%
HashMap addresses = addressbook.getAllAddress();
Iterator it = addresses.values().iterator();
System.out.println("Size of addresses = "+addresses.size());
%>
<form>
<table width="460" height="70" border="2" align="center">
            <tr>
              <td width="20" height="30">&nbsp;</td>
              <td width="93" align="center">Name</td>
              <td width="106" align="center">Phone</td>
              <td width="211" align="center">Address</td>
            </tr>
<%

while(it.hasNext()){
addressbook = (AddressBookBean)(it.next());
%>

            <tr>
              <td height="30"><input type="checkbox" name="checkbox" value="<%=(addressbook).getId() %>" /></td>
              <td height="30"><input name="textfield1" type="text" value="<%=(addressbook).getName() %>" size="13"/></td>
              <td height="30"><input name="textfield2" type="text" value="<%=(addressbook).getPhone() %>" size="15"/></td>
              <td height="30"><input name="textfield2" type="text" value="<%=(addressbook).getAddress() %>" size="30"/></td>
            </tr>
        
 <%} %>  
 
</table>
<br>
<input type="submit" name="Save" value="save" onclick="this.form.action='/save'"/>
<input type="submit" name="Delete" value="delete" onclick="this.form.action='/delete'"/>
<input type="button" name="Add" value="add" onclick="this.form.action='/insert'"/>
</form>

这是我写的jsp,但是有很多问题,请大家看看吧

#4


这是常见的动态界面保存,查询出的数据都放在文本框里,提交时判断是否选中,然后修改选中数据.还有动态的校验,比如数字,长度.有时还要求数据翻页等等.

#5


我对这web不是很懂,所以请大家尽量说得详细一些好吗?
1,我修改后的数据什么获得,如addressbook.name;addressbook.phone;addressbook.address的值修改后怎么得到。
2,如何判断checkbox被选中

#6


zhuxr2003,你别介绍一下就走了啊!

#7


比如addressbook表有两个字段id,name,其中id是表的主键.name是名字.然后查询,
比如"select id,name from addressbook".
程序大致如下:
先把查询出的数据放入一个ArrayList,这个实现很简单,推荐用structs.
ArrayList ab;//查询出的全部数据

循环列出数据{
<input type="checkbox" name="cb<%=ab.GetId()%>"> 
<input type="text" name="t<%=ab.GetId()%>" value="<%=ab.GetName()%>"> 
}

大致意思就是checkbox的名字都是cb加上id值.而文本框的名字都是t加上id值,而且文本框内容就是name值.
<%=ab.GetId()%>和<%=ab.GetName()%>可以用structs标签代替,我这里是举个例子.

修改提交后,要重新查询一次,然后判断
request.getParameter("ab"+ab.GetId())是否为空,不为空表示已选中.
然后修改选中的name值,比如"update addressbook set name='"+request.getParameter("t"+ab.GetId())+"' where id='"+ab.GetId()+"'"

这是最简单的动态表单修改,还有涉及表单动态校验和翻页等较难的情况.其实解决方法也和上面类似.

#1


up

#2


checkbox提交到后台就是一个数组,你可以判断每个元素是否被选中

#3


<jsp:useBean id="addressbook" class="addressbook.bean.AddressBookBean" scope="session"/>

<%
HashMap addresses = addressbook.getAllAddress();
Iterator it = addresses.values().iterator();
System.out.println("Size of addresses = "+addresses.size());
%>
<form>
<table width="460" height="70" border="2" align="center">
            <tr>
              <td width="20" height="30">&nbsp;</td>
              <td width="93" align="center">Name</td>
              <td width="106" align="center">Phone</td>
              <td width="211" align="center">Address</td>
            </tr>
<%

while(it.hasNext()){
addressbook = (AddressBookBean)(it.next());
%>

            <tr>
              <td height="30"><input type="checkbox" name="checkbox" value="<%=(addressbook).getId() %>" /></td>
              <td height="30"><input name="textfield1" type="text" value="<%=(addressbook).getName() %>" size="13"/></td>
              <td height="30"><input name="textfield2" type="text" value="<%=(addressbook).getPhone() %>" size="15"/></td>
              <td height="30"><input name="textfield2" type="text" value="<%=(addressbook).getAddress() %>" size="30"/></td>
            </tr>
        
 <%} %>  
 
</table>
<br>
<input type="submit" name="Save" value="save" onclick="this.form.action='/save'"/>
<input type="submit" name="Delete" value="delete" onclick="this.form.action='/delete'"/>
<input type="button" name="Add" value="add" onclick="this.form.action='/insert'"/>
</form>

这是我写的jsp,但是有很多问题,请大家看看吧

#4


这是常见的动态界面保存,查询出的数据都放在文本框里,提交时判断是否选中,然后修改选中数据.还有动态的校验,比如数字,长度.有时还要求数据翻页等等.

#5


我对这web不是很懂,所以请大家尽量说得详细一些好吗?
1,我修改后的数据什么获得,如addressbook.name;addressbook.phone;addressbook.address的值修改后怎么得到。
2,如何判断checkbox被选中

#6


zhuxr2003,你别介绍一下就走了啊!

#7


比如addressbook表有两个字段id,name,其中id是表的主键.name是名字.然后查询,
比如"select id,name from addressbook".
程序大致如下:
先把查询出的数据放入一个ArrayList,这个实现很简单,推荐用structs.
ArrayList ab;//查询出的全部数据

循环列出数据{
<input type="checkbox" name="cb<%=ab.GetId()%>"> 
<input type="text" name="t<%=ab.GetId()%>" value="<%=ab.GetName()%>"> 
}

大致意思就是checkbox的名字都是cb加上id值.而文本框的名字都是t加上id值,而且文本框内容就是name值.
<%=ab.GetId()%>和<%=ab.GetName()%>可以用structs标签代替,我这里是举个例子.

修改提交后,要重新查询一次,然后判断
request.getParameter("ab"+ab.GetId())是否为空,不为空表示已选中.
然后修改选中的name值,比如"update addressbook set name='"+request.getParameter("t"+ab.GetId())+"' where id='"+ab.GetId()+"'"

这是最简单的动态表单修改,还有涉及表单动态校验和翻页等较难的情况.其实解决方法也和上面类似.