2016-11-17 45 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 :) :)