在同一页面中使用AJAX提交表单后显示警告消息

时间:2016-02-13 10:47:40

标签: javascript jquery ajax servlets

我有一个AJAX成功响应的问题什么不能正常工作,我不明白为什么.. 我有一个使用XML DOM从XML文档生成Javascript的表单,作为动作,我使用表单结合name-value对servlet进行更新。一旦我点击按钮,servlet就可以正常工作并且它正确地更新我的数据库但是一旦我调用AJAX函数在表单的同一页面中显示警报消息,它就完全不起作用而且它不会显示。 我该如何解决?

这是使用Javascript生成的表单的一部分(它是表的一部分)

...
txt = txt + "<td class=\"pull-right\">" + "<form name=\"form1\" method=\"get\" action=\"SetTrue\">" +
    "<input type=\"hidden\" name=\"id\" value=\"" + nn[0].firstChild.nodeValue + "\"/>"
    + "<button type=\"submit\" class=\"btn btn-link glyphicon glyphicon-star\"></button>" 
    + "</form>" + "</td>";
...

这是我的servlet代码的一部分,工作正常

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException {
    HttpSession session = request.getSession();
    response.setContentType("text/html;");
    PrintWriter out = response.getWriter();
    Integer UserID = (Integer)session.getAttribute("iduser");
    String errorMsg = null;
    String successMsg = null;

    try {
        ConnectionManager conn = new ConnectionManager();
        Connection connection = conn.getConnection();
        PreparedStatement statement = null;

        String string_id = request.getParameter("id");
        int id = Integer.parseInt(string_id);

        boolean set_true = true;

        String update = "UPDATE Table SET Attribute=? WHERE ID=? AND UserID=?";
        statement = connection.prepareStatement(update);

        statement.setBoolean(1, set_true);
        statement.setInt(2, id);
        statement.setInt(3, UserID);

        int num = statement.executeUpdate();
        if (num > 0) {          
            successMsg = "OK";
            out.println(successMsg);
            RequestDispatcher reqDisp = getServletContext().getRequestDispatcher("/Welcome.jsp");
            reqDisp.forward(request, response);
        }
        else {
            errorMsg = "Error";
            session.setAttribute("error", errorMsg);
            RequestDispatcher reqDisp = getServletContext().getRequestDispatcher("/Welcome.jsp");
            reqDisp.forward(request, response);         
        }                           
        connection.close();
        statement.close();
    }
    catch (Exception e) {
        e.printStackTrace();
    }
}

这是我在Welcome.jsp页面中的AJAX函数

 ...
$("#form1").submit(function(){      
      $.ajax({
         type : form.attr('method'),
         url : form.attr('action'),
         success : function(data) {
               alert(data);
         }
      });
...

可以请任何人帮助我并解决我的问题,解释我为什么不起作用?提前致谢

0 个答案:

没有答案