2013-09-26 155 views
-1

我的問題很簡單,我製作了一個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> 
+0

我認爲你所做的並不是正確的方式來修改基於表格編輯的內容。服務器端應該有一些東西。這將修改你的數據到數據庫。如果您不希望頁面在「保存」上重新加載,則會發出一些ajax調用。 – Ketan

+0

您的「onclick」調用中的代碼實際上是在服務器上運行的,但一旦生成頁面就會發生。如果您要添加一個Submit按鈕並單擊它,那麼表單將提交併且這些SQL語句將運行。如果您希望這些更新在不刷新頁面的情況下發生,請使用AJAX並將數據庫更新代碼移出視圖圖層。 – Drew

回答

0

一個好辦法去解決這個問題將是

  1. 有一個servlet坐在後端可以與數據庫進行交互。
  2. 無論何時用戶單擊表並修改表,都會向此servlet發送ajax請求。
  3. 該servlet與數據庫交互並調用相應的UPDATE表方法。

如果你想讓事情在飛行中完成,你應該看看AJAX。

+0

沒有太大的幫助......還是謝謝 – ABV

0

onClick是一個JavaScript的東西。它不提交表單,因此,request.getParameter不起作用。