With the use of jQuery AJAX you can instantly display whether the entered username is already been used or not by another user.
User doesn’t have to submit the form.
In this tutorial, I show how you can check username if it already exists in the PostgreSQL database or not using jQuery AJAX and PHP.

Contents
1. Table structure
I am usingĀ users table in the example.
CREATE TABLE users (
id serial PRIMARY KEY,
username varchar(80) NOT NULL,
fullname varchar(80) NOT NULL,
email varchar(80) NOT NULL
)
2. Configuration
Create a new config.php file.
Completed Code
<?php
$host = "localhost";
$user = "postgres";
$password = "root";
$dbname = "tutorial";
$con = pg_connect("host=$host dbname=$dbname user=$user password=$password");
if (!$con) {
die('Connection failed.');
}
3. HTML
Create a text element to enter username and a <div id="uname_response"> to display availability using jQuery AJAX.
Completed Code
<div> <input type="text" class="textbox" id="txt_username" name="txt_username" placeholder="Enter Username" /> <!-- Response --> <div id="uname_response" ></div> </div>
4. AJAX
Create ajaxfile.php file to handle AJAX requests.
Check if username is POST or not.
If POST then count records where username field value is equal to $username in the users table.
If count is greater than 0 then return Not Available message otherwise, Available message.
Completed Code
<?php
include 'config.php';
if(isset($_POST['username'])){
$username = $_POST['username'];
// Check username
$sql = "select count(*) as allcount from users where username=$1";
$result = pg_query_params($con, $sql, array($username));
$row = pg_fetch_assoc($result);
$count = $row['allcount'];
$response = "<span style='color: green;'>Available</span>";
if($count > 0){
$response = "<span style='color: red;'>Not Available</span>";
}
echo $response;
exit;
}
5. jQuery
Define keyup event on #txt_username.
Send AJAX POST request to ajaxfile.php if value is not empty. Pass {username: username} as data.
On successful callback write a response inĀ #uname_response.
Completed Code
$(document).ready(function(){
$("#txt_username").keyup(function(){
var username = $(this).val().trim();
if(username != ''){
$.ajax({
url: 'ajaxfile.php',
type: 'post',
data: {username:username},
success: function(response){
// Show response
$("#uname_response").html(response);
}
});
}else{
$("#uname_response").html("");
}
});
});
6. Output
7. Conclusion
Using the above script you can validate username or email on your form and make sure to again validate the value before inserting the record.
You can view the MySQL version of this tutorial here.
If you found this tutorial helpful then don't forget to share.