Вы можете сделать запрос Ajax на страницу на сервере, чтобы проверить, доступно ли имя пользователя, это возможно даже без использования JQuery, вместо этого используйте простой объект JavaScript и XMLHttpRequest, поскольку все современные браузеры поддерживают Ajax. Вы можете запросить эту страницу для определенного события, то есть, когда пользователь вводит свое имя в текстовом поле, или когда текстовое поле теряет фокус при вводе имени и т. Д.
Метод, который будет запрашивать доступность имени в базе данных с сервера, будет следующим. Чисто с помощью JavaScript и Ajax. (Обратите внимание, что в примере метода я использовал страницу JSP и intead POST, я использовал метод GET, поскольку запрашиваемые данные не являются конфиденциальными, поэтому их можно вызывать без какого-либо шифрования)
function requestUserInfo(x)
{
var url = "./CheckAvailability.jsp?id=";
var xhr = false;
if(window.XMLHttpRequest) //Standard object that works with every browser except for IE
{
xhr = new XMLHttpRequest();
}
else if(window.ActiveXObject) //Use IE specific object if IE is the browser
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
function handleHttpResponse()
{
var results=xhr.responseText; //Store the response received from CheckAvailability.jsp
if(results.trim()=="0") //The CheckAvailability.jsp page will return 0 is user name exists
{
//Your code to perform something if user name exists
}
else
{
//Your code to perform something if user name does not exist
}
}
var sId = x.value;
xhr.open("GET", url + escape(sId), true);
xhr.onreadystatechange = handleHttpResponse;
xhr.send(null);
}
Метод requestUserInfo(x)
принимает ссылку на элемент управления, в котором мы будем вызывать этот метод, и запрашивает следующую страницу CheckAvailability.jsp
<%@ page import="java.sql.*" import="java.io.*" import="java.util.*" %>
//The following code checks for User name existence in a table stored in MySQL
<%
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection cn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/MyDatabase?user=;password=","myuser","mypass");
Statement st=cn.createStatement();
String user=request.getParameter("id");
ResultSet rs=st.executeQuery("select * from users where usernm='"+user+"'");
if(rs.next()) //Check if User Already Exists
{
//Return "0" if Exists
out.print("0");
}
else
{
//Return "1" if User name does not exist
out.print("1");
}
st.close();
cn.close();
}
catch(Exception e)
{
out.println(e);
}
%>