我的問題很簡單,我製作了一個JSP頁面,其中有一個顯示數據庫內容的表格,現在試圖編輯表格中的細節,同時編輯數據庫中的值。 我已經寫了代碼,一切看起來不錯,但是,它不編輯數據庫,該怎麼辦? 幫助是非常需要的,非常感謝。 在此先感謝。在編輯數據庫的JSP頁面中編輯表格
<%@page import="java.sql.DriverManager"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@page import="java.sql.*" %>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
</body>
<form method="post">
<table border="7">
<tr>
<td>ID</td>
<td>NAME</td>
<td>SKILL</td>
<td colspan="2" align="center">ACTION</td>
</tr>
<%
try
{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost/test";
String username="root";
String password="root";
String query="select * from jsp1";
Connection conn=DriverManager.getConnection(url,username,password);
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(query);
while(rs.next())
{
%>
<tr>
<td><%=rs.getInt("ID") %></td>
<td><input type="text" value="<%=rs.getString("NAME") %>"></td>
<td><input type="text" value="<%=rs.getString("SKILL") %>"></td>
<td><input type="button" name="UPDATE" value="UPDATE" onclick="
<%
String qmod="update jsp1 set NAME=?,SKILL=? where ID=? ";
PreparedStatement pstmt=conn.prepareStatement(qmod);
String one=request.getParameter("NAME");
String two=request.getParameter("SKILL");
String three=request.getParameter("ID");
pstmt.setString(1,one);
pstmt.setString(2,two);
pstmt.setString(3,three);
pstmt.executeUpdate();
%>"></td>
<td> <input type="button" name="DELETE" value="DELETE"></td>
</tr>
<%
}
%>
</table>
<%
rs.close();
stmt.close();
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
}
%>
</form>
</html>
我認爲你所做的並不是正確的方式來修改基於表格編輯的內容。服務器端應該有一些東西。這將修改你的數據到數據庫。如果您不希望頁面在「保存」上重新加載,則會發出一些ajax調用。 – Ketan
您的「onclick」調用中的代碼實際上是在服務器上運行的,但一旦生成頁面就會發生。如果您要添加一個Submit按鈕並單擊它,那麼表單將提交併且這些SQL語句將運行。如果您希望這些更新在不刷新頁面的情況下發生,請使用AJAX並將數據庫更新代碼移出視圖圖層。 – Drew