2016-11-17 51 views
-1

我在使用AJAX的JSP中发送表单时没有刷新页面有问题。我如何创建AJAX发送此表单,从index.jsp发送到send.jsp而不刷新页面?谢谢你的答案。使用JSP + AJAX + MYSQL发布表单,无刷新页面?

这是表单代码,它的工作,没有AJAX。 (的index.jsp

<form id="dom-realitka-notifikacia" action="send.jsp" method="post" > 
      <div class="stred"> 
      <b class="cierna">E-mail:</b>  
      <input type="text" class="form-control form-rovno" id="email" name="email" placeholder="Sem napíšte e-mail"> 
      <input type="hidden" value="domrealitka" id="tabulka" name="tabulka"> 
      <input type="hidden" value="<%= rs.getInt("id") %>" id="id_realitka" name="id_realitka"> 

      <button type="submit" class="btn btn-success">Odoslať</button> 
      </div> 
     </form> 

这是(send.jsp),没有AJAX的工作,并插入到MySQL。

page contentType="text/html" pageEncoding="UTF-8" 
page import="javax.mail.*" 
page import="javax.mail.internet.*" 
page import="javax.sql.*" 
page import="javax.naming.Context" 
page import="javax.naming.InitialContext" 
page import="java.sql.*" 


      request.setCharacterEncoding("UTF-8"); 
      Connection con = null; 
      PreparedStatement ps = null; 
      ResultSet rs = null; 

      String email = request.getParameter("email"); 
      int id_realitka = Integer.valueOf(request.getParameter("id_realitka")); 
      String tabulka = request.getParameter("tabulka"); 



      try { 
       Class.forName("com.mysql.jdbc.Driver"); 
       System.out.println("nacitala sa driver"); 
       Context ctx = new InitialContext(); 
       DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/janko"); 
       con = ds.getConnection(); 
       System.out.println("nacitala sa databaza"); 



       String sql = "INSERT INTO janko.notifikacia (email, id_realitka, tabulka) VALUES (?, ?, ?)"; 
       ps = con.prepareStatement(sql); 

       ps.setString(1, email); 
       ps.setInt(2, id_realitka); 
       ps.setString(3, tabulka); 

       ps.executeUpdate(); 


      con.close(); 

      } 

      catch(ClassNotFoundException e1) //ClassNotFoundException dame Class.forName a klikneme ctrl+space a e1 dopiseme hocico 
      { 
       System.out.println(e1.getMessage()); //vypis spravy e1 do konzoly 

      } 
      catch(SQLException e2) //SQLException mame z DriverManager.getConnection po kliknuti ctrl+space a e2 dopiseme hocico 
      { 
       System.out.println(e2.getMessage()); //vypis spravy e2 do konzoly 

      } 

      finally{ 
       con = null; 
       rs = null; 
       ps = null; 
      } 
+0

可能的重复[如何使用Servlets和Ajax?](http://stackoverflow.com/questions/4112686/how-to-use-小服务程序和 - AJAX) –

回答

0

可以使用JQuery轻松动态提交表单。只需在您的文件中包含jquery,并将以下代码粘贴到您的html文件中即可。

<script> 
$.ajax({url: "send.jsp", 
     data: $('#dom-realitka-notifikacia').serialize(), 
     success: function(result){ 
     //do something like showing success message 
    }}); 
</script> 

此代码将序列化您的表单数据并将其发送到相关的servlet。 servlet代码保持不变。 希望这有助于。如果是这样,请将其标记为答案或至少upvote :) :)