javascript - How to insert the dynamic added row values into the database using JDBC Servlets -
here jsp code, adding , deleting rows dynamically using javascript,but while inserting details database mysql,it insert 1 row..how add dynamically added row values database using servlets.. here code
<html> <head> <title> timeline sheet</title> <script language="javascript"> $('form').change(function(){ $('form').submit(); }); function validlogin(){ if (document.form.eid.value == ""){ alert ( "please enter employee id." ); document.form.eid.focus(); return false; } if (document.form.ename.value == ""){ alert ( "please enter employee name." ); document.form.ename.focus(); return false; } alert ( "inserted successfully" ); return true; } function addrow(tableid) { var table = document.getelementbyid(tableid); // rowcount = table.rows.length; var row = table.insertrow(1); var colcount = table.rows[2].cells.length; for(var i=0; i<colcount; i++) { var newcell = row.insertcell(i); newcell.innerhtml = table.rows[2].cells[i].innerhtml; //alert(newcell.childnodes); switch(newcell.childnodes[0].type) { case "text": newcell.childnodes[0].value = 0; break; case "checkbox": newcell.childnodes[0].checked = false; break; case "select-one": newcell.childnodes[0].selectedindex = 0; break; case "value": newcell.childnodes[0].value=0; } } } function deleterow(tableid) { try { var table = document.getelementbyid(tableid); var rowcount = table.rows.length; for(var i=1; i<rowcount; i++) { var row = table.rows[i]; var chkbox = row.cells[0].childnodes[0]; if(null != chkbox && true == chkbox.checked) { if(rowcount <= 3) { alert("cannot delete rows."); break; } table.deleterow(i); rowcount--; i--; } } }catch(e) { alert(e); } } function getcolumncount() { return document.getelementbyid('datatable').getelementsbytagname('tr') [1].getelementsbytagname('td').length; } function getrowcount() { return document.getelementbyid('datatable').rows.length; } function doadd(ths) { //alert(ths.parentnode.cellindex); //alert(getcolumncount()); var lastcol = getcolumncount()-1; var lastrow = getrowcount()-1; //for column sum var table = document.getelementbyid("datatable"); var row = table.rows[ths.parentnode.parentnode.rowindex]; var colsum=0; for(var i=4;i<lastcol;i++) colsum=eval(colsum) + eval(row.cells[i].childnodes[0].value); row.cells[lastcol].innerhtml = colsum; //for row sum var cindex = ths.parentnode.cellindex; //alert(cindex); var rowsum = 0; for(var i=1;i<lastrow;i++) rowsum = eval(rowsum) + parseint(table.rows[i].cells[cindex].childnodes[0].value); table.rows[lastrow].cells[cindex].innerhtml = rowsum; //grand total var finsum = 0; for(var i=1;i<lastrow;i++) finsum = eval(finsum) + parseint(table.rows[i].cells[lastcol].innerhtml); table.rows[lastrow].cells[lastcol].innerhtml = finsum; } </script> </head> <body> <center> <b> <i>sample timeline sheet </b> </i> </center> <br> <br> <form name="form" action="loginservlet" method="post" onsubmit="return validlogin();"> employee id:<input type="text" name="eid"><br><br> employee name:<input type="text" name="ename"><br><br> date<input type="date" name="fromdate" /> date:<input type="date" name="todate"> <br> <br> <br> <table id="datatable" border="2" cell padding="1" cell spacing="1"> <tr> <th style="background-color:white"></th> <th>project</th> <th>reports</th> <th>activity</th> <th > monday </th> <th> tuesday </th> <th> wednesday</th> <th> thursday </th> <th> friday </th> <th> saturday </th> <th> sunday </th> <th>no. of hrs</th> </tr> <tr> <td><input type="checkbox" name="chk"/></td> <td><select name="project"> <option value="a">a</option> <option value="b">b</option> </select></td> <td><select name="reports"> <option value="resource pyramid">resource pyramid</option> <option value="migration">migration</option> <option value="timesheet form">timesheet form</option> <option value="timesheet report">timesheet report</option> </select></td> <td> <select name="activity"> <option value="development">development</option> <option value="testing">testing</option> <option value="research">research</option> <option value="data upload">data upload</option> <option value="design review">design review</option> <option value="documentation">documentation</option> <option value="leave">leave</option> <option value="holiday">holiday</option> <option value="pre sales">pre sales</option> <option value="installation">installation</option> <option value="miscellaneous">miscellaneous</option> <option value="back up">back up</option> <option value="migration">migration</option> <option value="defect fixing">defect fixing</option> </select></td> <td><input type="number" name="mon" value="0" onchange="doadd(this)"></td> <td><input type="number" name="tue" value="0" onchange="doadd(this)"></td> <td><input type="number" name="wed" value="0" onchange="doadd(this)"></td> <td><input type="number" name="thur" value="0" onchange="doadd(this)"></td> <td><input type="number" name="fri" value="0" onchange="doadd(this)"></td> <td><input type="number" name="sat" value="0" onchange="doadd(this)"></td> <td><input type="number" name="sun" value="0" onchange="doadd(this)"></td> <td>0</td> </tr> </table> <input type="button" value="add row" onclick="addrow('datatable')" name="addrow" /> <input type="button" value="delete row" onclick="deleterow('datatable')" /> <input type="button" name="save" value="save"> <input type="submit" name="submit" value="submit" > </form> </body> </html>
and servlet code is:
public class loginservlet extends httpservlet { public void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { // todo auto-generated method stub if (request.getparameter("submit") != null) { // invoke firstservlet's job here. response.setcontenttype("text/html"); string id=request.getparameter("eid"); string name=request.getparameter("ename"); string fromdate=request.getparameter("fromdate"); string todate=request.getparameter("todate"); string project=request.getparameter("project"); string reports=request.getparameter("reports"); string activity=request.getparameter("activity"); string mon=request.getparameter("mon"); string tue=request.getparameter("tue"); string wed=request.getparameter("wed"); string thur=request.getparameter("thur"); string fri=request.getparameter("fri"); string sat=request.getparameter("sat"); string sun=request.getparameter("sun"); try { class.forname("com.mysql.jdbc.driver"); connection con = drivermanager.getconnection("jdbc:mysql://localhost:3306/timeline","root", "root"); string stringdate ="01-01-2012 "; string stringdate1 ="02-01-2012 "; simpledateformat sdf= new simpledateformat("mm-dd-yyyy"); simpledateformat sdf1= new simpledateformat("mm-dd-yyyy"); java.util.date udate = sdf.parse(stringdate); java.util.date udate1 = sdf1.parse(stringdate1); java.sql.date sqldate = new java.sql.date(udate.getdate()); java.sql.date sqldate1 = new java.sql.date(udate1.getdate()); string sql="insert employeeform(id,name,fromdate,todate,project,reports,activity,mon,tue,wed,thur,fri,sat,sun)value(?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; preparedstatement stmt=con.preparestatement(sql); stmt.setstring(1, id); stmt.setstring(2,name); stmt.setstring(3,fromdate); stmt.setstring(4,todate); stmt.setstring(5,project); stmt.setstring(6,reports); stmt.setstring(7, activity); stmt.setstring(8,mon); stmt.setstring(9,tue); stmt.setstring(10,wed); stmt.setstring(11, thur); stmt.setstring(12, fri); stmt.setstring(13,sat); stmt.setstring(14,sun); stmt.executeupdate(); system.out.println("inserted successfully"); response.sendredirect("success.jsp"); } catch(exception e) { system.out.println(e); response.sendredirect("error.jsp"); } } else if (request.getparameter("save") != null) { // invoke secondservlet's job here. response.setcontenttype("text/html"); string id=request.getparameter("eid"); string name=request.getparameter("ename"); string fromdate=request.getparameter("fromdate"); string todate=request.getparameter("todate"); string project=request.getparameter("project"); string reports=request.getparameter("reports"); string activity=request.getparameter("activity"); string mon=request.getparameter("mon"); string tue=request.getparameter("tue"); string wed=request.getparameter("wed"); string thur=request.getparameter("thur"); string fri=request.getparameter("fri"); string sat=request.getparameter("sat"); string sun=request.getparameter("sun"); string msg=null; try { class.forname("com.mysql.jdbc.driver"); connection con = drivermanager.getconnection("jdbc:mysql://localhost:3306/timeline","root", "root"); string sql="insert partialentered(id,name,fromdate,todate,project,reports,activity,mon,tue,wed,thur,fri,sat,sun)value('"+id+"','"+name+"','"+fromdate+"','"+todate+"','"+project+"','"+reports+"','"+activity+"','"+mon+"','"+tue+"','"+wed+"','"+thur+"','"+fri+"','"+sat+"','"+sun+"')"; statement stmt=con.createstatement(); int rs=stmt.executeupdate(sql); system.out.println("inserted successfully"); } catch(exception e) { system.out.println(e); } } } }
while submitting form tells inserted successfully,but stores 1 row details.please me how can change servlet code such can insert dynamic add row values database.
thanks in advance.
u can view output jfiddle: http://jsfiddle.net/unuax/ when use add row button , insert values newly added row,it not insert details database.
you need bind event listener submit form data on whatever action want database update on. example, if on change of input form, use jquery:
$('form').change(function(){ $('form').submit(); });
Comments
Post a Comment