在JSP页面中不刷新页面修改数值示例:

来源:互联网 发布:java 将xlsx转换为xls 编辑:程序博客网 时间:2024/04/29 04:05

在要修改数值的位置使用

<td align="right"> <input type="text"  style="text-align:center" class="txt1" name="querenDHLaaa"  size="10" value="<%=fenzhi%>" onchange="_updateFZ('<%=detail_code %>','<%=fenzhi %>','<%=zhzbvo.getFenzhi() %>',this)" >  &nbsp;</td>

在JavaScript中写一个函数

function _updateFZ(detail_code,fenzhi,zhzb_fenzhi,obj){
  var fzs = document.form1.querenDHLaaa;
  var zhzb_fenzhi = parseInt(zhzb_fenzhi);
  var allper =0;
  if(fzs.length==undefined)
  {
   allper = obj.value;
  }
  for ( var i=0 ; i<fzs.length ; i++){
   allper = parseInt(allper)+parseInt(fzs[i].value);
  }
  if(obj.value=="") {
     alert("分值不能为空!");
    return false;
   }
  if(checknumber(obj.value)){
    alert("分值只允许是数字!");
    return false;
   }
  if(allper>zhzb_fenzhi)
  {
   var num =parseInt(zhzb_fenzhi)-parseInt(allper)+parseInt(obj.value);
   alert("所修改分值不得大于"+num+",请重新修改!");
   obj.value=fenzhi;
   return false;
  }
   
  var http = new ActiveXObject('Microsoft.XMLHTTP');
  var url = '';
  url = '<%=contextpath%>/servlet/KhpjDetailSetServlet?detail_code='+detail_code+'&fenzhi='+obj.value+'&flag=2';
  http.open('POST',url,false);
  http.send();
  return;
  
 }

然后根据传递到KhpjDetailSetServlet中的参数修改数值:

PrintWriter out = null;
  try {
            out = response.getWriter();
        } catch (IOException e1) {
            // TODO 自动生成 catch 块
            e1.printStackTrace();
        }

if(flag.equals("2"))
  {
   String detail_code = request.getParameter("detail_code");
   String fenzhi = request.getParameter("fenzhi");
   Connection conn = null;
   Statement stmt = null;
   ResultSet rs = null;
   System.out.println("----------5------------");
      String sql ="update  t_c_m_zhzb_main set (zb_fz)=("+fenzhi+") where zb_code='"+detail_code+"'";
   try {
    conn = DBUtil.getConnection(DBUtil.DS_JNDI);
    if (conn == null)
     throw new SQLException("数据库忙,连接出错,请重新连接!");
    conn.setAutoCommit(false);
    stmt = conn.createStatement();
    System.out.println("---------------------------6-----------");
    int f = stmt.executeUpdate(sql);
    System.out.println("-----------"+f);
    if(f>0){
     System.out.println("---------------------7-----------");
     conn.commit();
     conn.setAutoCommit(true);
     out.print("success");
    }
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
         
  }

这样就可以实现不刷新页面进行修改数据了。