JSP页面的数据库数据修改问题

shadowbynl 2013-12-13 10:52:52
新手,做了个JSP导出数据库数据的页面,现在想在显示结果上直接修改数值,可是现在代码只能实现第一行的修改操作,下面的数据都无法修改。不知道怎么修改呢?能不能帮忙修改一下。或者给个思路。

其中数据唯一字段是NOTENO,想修改的是溢出费用。

页面显示是这样的:


输出页面:

</head>
<body>
<center>
<div>
<form action="servlet/distribute_Updategs" method="post">
<% List<distribute_sordata> averdata =(List<distribute_sordata>)request.getAttribute("averdata");%>
<table id="table_1">
<tbody>
<tr><td style="padding-left:20px"><%out.println("操作工号");%></td>
<td style="padding-left:20px"><%out.println("号码");%> </td>
<td style="padding-left:20px"><%out.println("姓名");%> </td>
<td style="padding-left:20px"><%out.println("溢出费用");%> </td>
<%out.println("<br/>");%></tr>
<%for(int i=0;i<averdata.size();i++)
{%>
<tr>
<td style="padding-left:20px"><%out.println(averdata.get(i).getSelect_agent());%></td>
<td style="padding-left:20px"><%out.println(averdata.get(i).getNUMN());%></td>
<td style="padding-left:20px"><%out.println(averdata.get(i).getNAMEN());%></td>
<td style="padding-left:20px"><input type="text" size="5" name="YC_AMT" value="<%=averdata.get(i).getYC_AMT()%>" style="text-align:center;" /></td>
<td style="padding-left:20px"><input type="text" name="NOTENO" value="<%=averdata.get(i).getNOTENO() %>"/>
<td style="padding-left:20px"><input type="submit" value="修改"/
<input type="hidden" name="Select_agent" value="<%=averdata.get(i).getSelect_agent()%>" />
</tr>
<%
//out.println("<br/>");
//averdata.remove(averdata.get(i));
}
%>
</tbody>
</table>
</form>
</div>
</body>



update 方法:

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("utf-8");

response.setContentType("text/html");
PrintWriter out = response.getWriter();

int Select_agent=Integer.parseInt(request.getParameter("Select_agent"));
// String agent_id=request.getParameter("agent_id");
String YC_AMT=request.getParameter("YC_AMT");
String NOTENO=request.getParameter("NOTENO");
// int LIUC_FLAG=Integer.parseInt(request.getParameter("LIUC_FLAG"));
distribute_dodata dodata=new distribute_dodata();
dodata.update(YC_AMT,NOTENO, Select_agent);
//System.out.println("执行成功");
List<distribute_sordata> listdata=dodata.averdata(Select_agent);
request.setAttribute("averdata", listdata);
request.getRequestDispatcher("../distribute_second.jsp").forward(request, response);


}


...全文
324 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
BUG胡汉三 2013-12-13
  • 打赏
  • 举报
回复
额~忘了一点修改button的type属性要改成button哦! <input type="button" value="修改" onclick="edit('<%=averdata.get(i).getSelect_agent()%>','<%=i %>')">
BUG胡汉三 2013-12-13
  • 打赏
  • 举报
回复
关键部分代码:

<td style="padding-left:20px"><input type="text" size="5" id="YC_AMT_ID<%=i%>" name="YC_AMT" value="<%=averdata.get(i).getYC_AMT()%>" style="text-align:center;" /></td>
    <td style="padding-left:20px"><input type="text" id="NOTENO_ID<%=i%>" name="NOTENO" value="<%=averdata.get(i).getNOTENO() %>"/>
  <input type="submit" value="修改" onclick="edit('<%=averdata.get(i).getSelect_agent()%>','<%=i %>')">
  <script type="text/javascript">
	function edit(agentId,i){
		var V_YC_AMT = getElementById("YC_AMT_ID"+i).value;
		var V_NOTENO = getElementById("NOTENO_ID"+i).value;
		var url = "servlet/distribute_Updategs?Select_agent="+agentId+"&YC_AMT="+V_YC_AMT+"¬ENO="+V_NOTENO;
		window.location.href = url;
	}
  </script>
doGet方法中调用一下doPost方法就OK了!
BUG胡汉三 2013-12-13
  • 打赏
  • 举报
回复
引用 5 楼 aza814574 的回复:
[quote=引用 4 楼 hzw2312 的回复:] 代码中的td跟input都要放在你原来放的位置上! 你的doGet代码呢? 因为href是已Get方式访问的! 你要在你的doGet方法里面调用一下你的doPost方法!

public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {request.setCharacterEncoding("UTF-8");
		    response.setCharacterEncoding("utf-8");

			response.setContentType("text/html");
			PrintWriter out = response.getWriter();
			
			int Select_agent=Integer.parseInt(request.getParameter("Select_agent"));
//			String agent_id=request.getParameter("agent_id");
			String YC_AMT=request.getParameter("YC_AMT");
			String NOTENO=request.getParameter("NOTENO");
//			int LIUC_FLAG=Integer.parseInt(request.getParameter("LIUC_FLAG"));
			distribute_dodata dodata=new distribute_dodata();
			dodata.update(YC_AMT,NOTENO, Select_agent);
			//System.out.println("执行成功");
			List<distribute_sordata> listdata=dodata.averdata(Select_agent);
			request.setAttribute("averdata", listdata);
			request.getRequestDispatcher("../distribute_second.jsp").forward(request, response);
			
	}
额,你看一下对不对。我找不出原因了...[/quote] 这样还是访问不了吗? 加我QQ远程给你看看吧! 837943410
shadowbynl 2013-12-13
  • 打赏
  • 举报
回复
引用 4 楼 hzw2312 的回复:
代码中的td跟input都要放在你原来放的位置上! 你的doGet代码呢? 因为href是已Get方式访问的! 你要在你的doGet方法里面调用一下你的doPost方法!

public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {request.setCharacterEncoding("UTF-8");
		    response.setCharacterEncoding("utf-8");

			response.setContentType("text/html");
			PrintWriter out = response.getWriter();
			
			int Select_agent=Integer.parseInt(request.getParameter("Select_agent"));
//			String agent_id=request.getParameter("agent_id");
			String YC_AMT=request.getParameter("YC_AMT");
			String NOTENO=request.getParameter("NOTENO");
//			int LIUC_FLAG=Integer.parseInt(request.getParameter("LIUC_FLAG"));
			distribute_dodata dodata=new distribute_dodata();
			dodata.update(YC_AMT,NOTENO, Select_agent);
			//System.out.println("执行成功");
			List<distribute_sordata> listdata=dodata.averdata(Select_agent);
			request.setAttribute("averdata", listdata);
			request.getRequestDispatcher("../distribute_second.jsp").forward(request, response);
			
	}
额,你看一下对不对。我找不出原因了...
BUG胡汉三 2013-12-13
  • 打赏
  • 举报
回复
代码中的td跟input都要放在你原来放的位置上! 你的doGet代码呢? 因为href是已Get方式访问的! 你要在你的doGet方法里面调用一下你的doPost方法!
shadowbynl 2013-12-13
  • 打赏
  • 举报
回复
引用 1 楼 hzw2312 的回复:
关键部分代码:

<td style="padding-left:20px"><input type="text" size="5" id="YC_AMT_ID<%=i%>" name="YC_AMT" value="<%=averdata.get(i).getYC_AMT()%>" style="text-align:center;" /></td>
    <td style="padding-left:20px"><input type="text" id="NOTENO_ID<%=i%>" name="NOTENO" value="<%=averdata.get(i).getNOTENO() %>"/>
  <input type="submit" value="修改" onclick="edit('<%=averdata.get(i).getSelect_agent()%>','<%=i %>')">
  <script type="text/javascript">
	function edit(agentId,i){
		var V_YC_AMT = getElementById("YC_AMT_ID"+i).value;
		var V_NOTENO = getElementById("NOTENO_ID"+i).value;
		var url = "servlet/distribute_Updategs?Select_agent="+agentId+"&YC_AMT="+V_YC_AMT+"¬ENO="+V_NOTENO;
		window.location.href = url;
	}
  </script>
doGet方法中调用一下doPost方法就OK了!
var url 后面是不是少了一点? 我现在这样子改了,可是按了按钮没反应。
 <td style="padding-left:20px"><input type="text" id="YC_AMT_ID<%=i%>" size="5" name="YC_AMT" value="<%=averdata.get(i).getYC_AMT()%>" style="text-align:center;" /></td>
    <td style="padding-left:20px"><input type="text" id="NOTENO_ID<%=i%>" name="NOTENO" value="<%=averdata.get(i).getNOTENO() %>"/>
    <td style="padding-left:20px"><input type="button" value="修改" onclick="edit('<%=averdata.get(i).getSelect_agent()%>','<%=i %>')"/>
    
    </td><script type="text/javascript">
	function edit(agentId,i){
		var V_YC_AMT = getElementById("YC_AMT_ID"+i).value;
		var V_NOTENO = getElementById("NOTENO_ID"+i).value;
		var url = "servlet/distribute_Updategs?Select_agent="+agentId+"&YC_AMT="+V_YC_AMT+"¬ENO="+V_NOTENO+"";
		window.location.href = url;
	}
dopost 是这样的
public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
	    response.setCharacterEncoding("utf-8");

		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		
		int Select_agent=Integer.parseInt(request.getParameter("Select_agent"));
//		String agent_id=request.getParameter("agent_id");
		String YC_AMT=request.getParameter("YC_AMT");
		String NOTENO=request.getParameter("NOTENO");
//		int LIUC_FLAG=Integer.parseInt(request.getParameter("LIUC_FLAG"));
		distribute_dodata dodata=new distribute_dodata();
		dodata.update(YC_AMT,NOTENO, Select_agent);
		//System.out.println("执行成功");
		List<distribute_sordata> listdata=dodata.averdata(Select_agent);
		request.setAttribute("averdata", listdata);
		request.getRequestDispatcher("../distribute_second.jsp").forward(request, response);
		
		

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧