
Hi, I'm trying to enable/disable the textbox in the while loop. It works but when i want to update my data, the data are not updated correctly. When i remove the enable/disable function,the data are updated correctly. Is my javascript wrong? How do i correct it? Please help. Thank you. (only the update part is wrong)
JSP: editDepartment.jsp
<%@ 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>
<style type="text/css">
</style>
<script language="javascript" type="text/javascript">
function enable_text(status)
{
status=!status;
deptName=document.updateDepartment.elements['updateDeptName'];
HOD=document.updateDepartment.elements['updateHOD'];
for (i=0;i<deptName.length;i++)
{
if ( document.updateDepartment.others[i].checked != status )
{
deptName[i].disabled = status;
HOD[i].disabled = status;
}
}
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body onload='disable_text(false)'>
<form name="addDepartment" action="AddDepartment">Add new
department : <br>
Department name : <input type="text" name="deptTxt" /> <br>
HOD name : <input type="text" name="HODTxt" /> <br>
<input type="submit" value="Add" /></form>
<form name="deleteDepartment" action="DeleteDepartment"><br>
<br>
Delete department : <br>
<%
Connection con = null;
try {
int row=1;
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
con = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:XE", "tay", "tay");
Statement stmt = con.createStatement();
ResultSet rs = stmt
.executeQuery("SELECT * FROM DEPARTMENT ORDER BY DEPARTMENT.DEPTNAME");
out.println("<table id=delDept>");
out.println("<tr>");
out.println("<td>Delete<td>deptID<td>deptName<td>HOD");
out.println("</tr>");
while (rs.next()) {
out.println("<td><input type='checkbox' name='chk' value='"+rs.getString("DEPTID")+"'>");
out.println("<td>"+rs.getString("DEPTID"));
out.println("<td>"+rs.getString("DEPTNAME"));
out.println("<td>"+rs.getString("HOD"));
out.println("</tr>");
row = row + 1;
}
out.println("</table>");
out.println("<input type=hidden name=counterloop value='"
+ (row-1) + "'>");
stmt.close();
rs.close();
//con.close();
} catch (Exception e) {
System.out.println(e);
}
%>
<br>
<input type="submit" value="Delete" />
</form>
<form name="updateDepartment" action="UpdateDepartment">
<br><br>
Update department : <br>
<%
try {
int row2=1;
Statement stmt1 = con.createStatement();
ResultSet rs1 = stmt1
.executeQuery("SELECT * FROM DEPARTMENT ORDER BY DEPARTMENT.DEPTNAME");
out.println("<table id=updDept>");
out.println("<tr>");
out.println("<td>Select<td>deptID<td>deptName<td>HOD");
out.println("</tr>");
while (rs1.next()) {
out.println("<tr>");
out.println("<td><input type='checkbox' name='others' onclick='enable_text(this.checked)'>");
//out.println("<td><input type='checkbox' name='others'>");
out.println("<td><input type=hidden name=updateDeptID value='"+rs1.getString("DEPTID")+"'><input type=text name=updateDeptID disabled='true' value='"+rs1.getString("DEPTID")+"'>");
out.println("<td><input type=text name=updateDeptName disabled='true' value='"+ rs1.getString("DEPTNAME")+"'>");
out.println("<td><input type=text name=updateHOD disabled='true' value='"+rs1.getString("HOD")+"'>");
out.println("</tr>");
row2=row2+1;
}
out.println("</table>");
out.println("<input type=hidden name=counterloop2 value='"+ (row2-1) + "'>");
stmt1.close();
rs1.close();
con.close();
} catch (Exception e) {
System.out.println(e);
}
%>
<br>
<input type="submit" value="Update" />
</form>
</body>
</html>
servlet: UpdateDepartment.java
package testpackage;
import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
/** * Servlet implementation class UpdateDepartment */ public class UpdateDepartment extends HttpServlet { private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String deptID[] = request.getParameterValues("updateDeptID");
String deptName[] = request.getParameterValues("updateDeptName");
String HOD[] = request.getParameterValues("updateHOD");
Integer row = Integer.parseInt(request.getParameter("counterloop2"));
System.out.println(row);
Connection con = null;
//if (deptID != null && deptID.length != 0)
//{
for(int i=0;i<row;i++)
{
try {
System.out.println(deptID[i]);
System.out.println(deptName[i]);
System.out.println(HOD[i]);
Class.forName("oracle.jdbc.driver.OracleDriver")
.newInstance();
con = DriverManager
.getConnection(
"jdbc:oracle:thin:@localhost:1521:XE",
"tay", "tay");
Statement stmt = con.createStatement();
stmt.executeUpdate("UPDATE DEPARTMENT SET DEPTNAME='"+deptName[i] +"', HOD='"+HOD[i]+"' WHERE DEPTID='"+ deptID[i]+"'");
con.close();
}
catch (Exception e) {
System.out.println(e);
}
}
//}
response.sendRedirect("editDepartment.jsp");
}
}

JSP edit application:
1)editapplication.jsp:
<%@ page import="java.sql.*" %>
<html>
<script>
function enable_text(){
var i=0;
deptName=document.form.elements['name'];
HOD=document.form.elements['address'];
for (i=0;i<deptName.length;i++) {
if(document.form.check[i].checked){
deptName[i].disabled = true;
HOD[i].disabled = true;
}
}
}
</script>
<form name="form" method="post" action="retcheck.jsp">
<table border="1">
<tr><th></th><th>Name</th><th>Address</th></tr>
<%
int i=0;
Connection con = null;
String url = "jdbc:mysql://localhost:3306/";
String db = "test";
String driver = "com.mysql.jdbc.Driver";
String userName ="root";
String password="root";
int sumcount=0;
Statement st;
try{
Class.forName(driver).newInstance();
con = DriverManager.getConnection(url+db,userName,password);
String query = "select * from data";
st = con.createStatement();
ResultSet rs = st.executeQuery(query);
%>
<%
while(rs.next()){
%>
<tr><td><input type="checkbox" value="<%= rs.getString("id")%>" onclick='enable_text()' name="check">
<td><input type="text" name="name" value="<%=rs.getString("name")%>"></td>
<td><input type="text" name="address" value="<%=rs.getString("address")%>"></td>
</tr>
<%
}
%>
<%
}
catch(Exception e){
e.printStackTrace();
}
%>
</table>
<input type="submit" value="Edit">
</form>
</html>
2)retcheck.jsp:
<%@ page import="java.sql.*" %>
<%
String id[]=request.getParameterValues("check");
%>
<form name="form" method=post action="up.jsp">
<table border=1>
<tr><th></th><th>Name</th><th>Address</th></tr>
<%
Connection conn = null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root", "root");
ResultSet rs = null;
Statement st=null;
st=conn.createStatement();
for(int a=0;a<id.length;a++){
rs = st.executeQuery("select * from data where id='"+id[a]+"'");
while(rs.next()){
%>
<tr>
<td><input type="hidden" name="id" value="<%=rs.getString("id")%>" > </td>
<td><input type="text" name="name" value="<%=rs.getString("name")%>"></td>
<td><input type="text" name="address" value="<%=rs.getString("address")%>"></td></tr>
<%
}
}
%>
</table>
<input type="submit" value="update">
</form>
3)up.jsp:
<%@ page import="java.sql.*" %>
<%
String id[]=request.getParameterValues("id");
String name[]=request.getParameterValues("name");
String add[]=request.getParameterValues("address");
Connection conn = null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root", "root");
Statement st=null;
st=conn.createStatement();
for(int i=0;i<id.length;i++){
st.executeUpdate("update data set name='"+name[i]+"',address='"+add[i]+"' where id='"+id[i]+"'");
out.println("Data is updated successfully");
}
response.sendRedirect("editapplication.jsp");
%>
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.