Ajax ResponseText без перезагрузки - PullRequest
0 голосов
/ 10 февраля 2019

Следующая форма успешно отправляет данные в MySQL db.но он не отображает responseText внутри div <div id="ajaxGetUserServletResponse"></div>. Как я могу получить ответ?

<form id="form-id" class="ajaxform" action="register.jsp">
<label>First Name </label>
<input type="text" name="userName" />
<label>Password </label>
<input type="password" name="password" />

<input type="submit" name="submit" value="submit" />
</form>

<br>
<br>

<strong>Ajax Response</strong>:
<div id="ajaxGetUserServletResponse"></div>

js файл:

$(document).ready(function(){
$(".ajaxform").bind("submit",function(e){

e.preventDefault();

var ajaxurl = $(this).attr("action");

var data = $(this).serialize();

$.post(ajaxurl,data,function(responseText) {
          $('#ajaxGetUserServletResponse').text(responseText);
},'json');
});

1 Ответ

0 голосов
/ 11 февраля 2019

Для тех, кто сталкивается с той же проблемой, вот изменения, которые я сделал, я предусмотрел 2 отдельных способа:

register.html

Изменения: Добавлено одно поле ввода с кнопкой типа и вызовом функции onclick="saveUserInfo()"

<body>
<form id="form-id" class="ajaxform" action="register.jsp">

    <label>First Name </label>

    <input id="userName" type="text" name="userName" />

    <input id="password" type="text" name="password" />

    <input type="submit" name="submit" value="submit" />
    <input type="button" id="button" value="SEND via AJAX" onclick="saveUserInfo()">


</form>

<br>
<br>

<strong>Ajax Response</strong>:
<div id="ajaxGetUserServletResponse"></div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"> 
</script>
<script src="js/script.js"></script>
</body>

script.js

Когда пользователь нажимает <input type="submit" name="submit" value="submit" />

$(document).ready(function(){
try {
$(".ajaxform").bind("submit",function(e){

e.preventDefault();

var ajaxurl = $(this).attr("action");

var data = $(this).serialize();

$.post(ajaxurl,data,function(responseText) {
$('#ajaxGetUserServletResponse').html(responseText)
});
});
} catch(e) {
alert("You messed something up!");
}
});

также, я попробовал этот способ,

script.js

А когда пользователь нажимает, <input type="button" id="button" value="SEND via AJAX" onclick="saveUserInfo()">

function saveUserInfo(){
var username = document.getElementById("userName").value;
var password = document.getElementById("password").value;

var vars = "userName="+username+"&password="+password;

$.ajax({
url: 'register.jsp',
type: 'POST',
data: vars,
})
.done(function( msg ) {
alert( "Data Saved: " + msg );
});
}

Также вот страница register.jsp для дополнительной информации.

<body>

<%@ page import ="java.sql.*" %>
<%@ page import ="javax.sql.*" %>


<%

String username = request.getParameter("userName");
String password = request.getParameter("password");
    if(username == null || "".equals(username)){
            username = "Guest";
        }

    String greetings = "Hello, " + username +"." +" Your Password is : "  +password + 
    ".";

    response.setContentType("text/plain");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(greetings);


Class.forName("com.mysql.jdbc.Driver");

Connection con = 
DriverManager.getConnection("jdbc:mysql://localhost:3306/user_info4","root","root");

Statement st = con.createStatement();
ResultSet rs;

int i=st.executeUpdate("INSERT INTO `new table`(username, password) VALUE 
('"+username+"','"+password+"')");
 %>

</body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...