有两个jsp文件,前端文件有一个表格,可以点击界面按钮增加行数,并向表格内填入数据,如何将表中数据插入数据库?
前端界面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<jsp:useBean id="connDB" scope="page" class="com.lah.ToolBean.Conn" />
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>填写出货单</title>
</head>
<body>
<center>
<h1>出货单填写</h1>
<tr>
<td align="right">出货单号:</td>
<td><input type="text" name="IncomeOrderNumber"
style="width: 300px;"></td>
</tr>
<form >
<table width="80%" id="tbl" border="1" align="center">
<tr>
<td>货物编号</td>
<td>货物名称</td>
<td>货物数量</td>
</tr>
<tr>
<td><input type=text name=ProductCode /></td>
<td><input type=text name=ProductName /></td>
<td><input type=text name=ProductNum /></td>
</tr>
</table>
<input type="button" value="添加" onclick="insert_row(ProductCode,ProductName,ProductNum,IncomeOrderNumber.value)" />
</form>
</center>
<script type="text/javascript">
function insert_row(ProductCode,ProductName,ProductNum,IncomeOrderNumber) {
//下面这些就是增加行用的
R = tbl.insertRow() //insertRow() 方法用于在表格中的指定位置插入一个新行。
C = R.insertCell() //insertCell() 方法用于在 HTML 表的一行的指定位置插入一个空的 <td> 元素。
C.innerHTML = "<input type='text' name='ProductCode' />"
C = R.insertCell()
C.innerHTML = "<input type='text' name='ProductName' />"
C = R.insertCell()
C.innerHTML = "<input type='text' name='ProductNum' />"
C = R.insertCell()
C.innerHTML = "<input type='button' value='删除' onclick='deleteRow(this)'>"
}
//用来删除行
function deleteRow(obj) {
alert("确定删除吗?");
tbl.deleteRow(obj.parentElement.parentElement.rowIndex);
}
</script>
</body>
</html>
//后台
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="java.sql.*"%>
<jsp:useBean id="connDB" scope="page" class="com.lah.ToolBean.Conn" />
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String number = request.getParameter("IncomeOrderNumber");
String ProductCode = request.getParameter("ProductCode");
String ProductName = request.getParameter("ProductName");
String ProductNum = request.getParameter("ProductNum");
String str = "select * from [IncomeOrder] where Number='" + number + "'";
ResultSet rs = connDB.executeQuery(str);
if (rs.next()) {
%>
<script type="text/javascript">
alert("该单号已经存在");
history.back();
</script>
<%
} else
try {
String strSql = "insert into [IncomeOrder] values('" + number + "','" + ProductCode + "','"
+ ProductName + "','" + ProductNum + "')";
int t = connDB.executeUpdate(strSql);
if (t == 0) {
%>
<script type="text/javascript">
alert("增加失败!");
history.back();
</script>
<%
} else {
response.sendRedirect("success.jsp");
}
} catch (Exception e) {
System.err.println(e.getMessage());
}
%>
</body>
</html>
谢谢各位l
后台接收参数的时候用逗号分隔,然后遍历数组,逐条保存,或者把数组转List批量保存
可以在提交表单的时候对数据处理下在上传
var ProductCodeArr =[];
$("input[name='ProductCode']").each(function(){
ProductCodeArr.push($(this).val());
})
然后在循环ProductCodeArr 写sql,这应该不难吧