Communicate a Web Page into a Web Server in PHP and AJAX

This tutorial is all about Communicate a Web Page into a Web Server in PHP and AJAX.
Good day everyone! Another tutorial for all programmers especially in the field of web development. This tutorial is about creating interactive web pages. With the use of PHP and AJAX we will make it possible.

So now, we will create a web page and make a simple scripts for communicating that page into a web server while typing in a input field.

To be able for you to understand about how this happen. Let me discuss you how it works.

When the user types a character in the input field, a function that we will make named “showHint()” will be executed. This function would be triggered by the onkeyup event.

Below is the PHP code:

[php]<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP - AJAX</title>

function showHint(str) {
if (str.length === 0) {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState === 4 && this.status === 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xmlhttp.open("GET", "gethint.php?q=" + str, true);
xmlhttp.send();
}
}

</head>
<body>
<p><b>Type a name below.</b></p>
<form>
First Name: <input type="text" onkeyup="showHint(this.Value)" />
</form>
<p>Suggestions: <span id="txtHint"></span></p>
</body>
</html>
[/php]

So now, I will explains how does the codes above goes:

So first, the code (str.lenght == 0) check if the input field is empty. Then if it is empty, the content of the txtHint placeholder should be clear and the function “showHint()” will be exit.

However, if the input field is not empty, do the following:

  • Create an XMLHttpRequest object
  • Create the function to be executed when the server response ready
  • Send the request off to a PHP file (gethint.php) on the server
  • Notice the q parameter is added to the url (gethint.php?q=”+str)
  • And the str variables holds the content of the input field

Now, create a “gethint.php” file then put the following codes.

[php]<?php
//array with names
$a[] = "Harley";
$a[] = "Joken";
$a[] = "Janobe";
$a[] = "Christian";
$a[] = "Diosher";
$a[] = "Warren";
$a[] = "Paolo";
$a[] = "Jay";
$a[] = "Joshua";
$a[] = "Stephen";

//get the q parameter from url
$q = $_REQUEST["q"];

$hint = "";

//lookup all hints from array if $q is different from ""

if ($q !== "") {
$q = strtolower($q);
$len = strlen($q);

foreach($a as $name) {
if (stristr($q, substr($name, 0,$len))) {
if ($hint === "") {
$hint = $name;
} else {
$hint .= ", $name";
}
}
}
}

//Ouput "no suggestion" if no hint was found or output corrent values
echo $hint === "" ? "no suggestion" : $hint;

?>[/php]

The codes above checks an array of names, and returns the corresponding name(s) to the browser.

Done.

If you have question regarding this article entitled as “COMMUNICATE A WEB PAGE INTO A WEB SERVER in PHP and AJAX” feel free to ask us by commenting below or visit on our contact page.

Frequently Asked Questions

How does this PHP project work?

Built with vanilla PHP (no framework) and MySQL backend. Standard structure: form HTML, PHP script handlers, MySQL via PDO or mysqli, sessions for auth, Bootstrap for responsive layout. Ready to extend for BSIT capstone scope.

What PHP and MySQL versions does this project require?

Most projects in this batch run on PHP 7.4 to PHP 8.2 with MySQL 5.7+ or MariaDB 10+. A few older projects need PHP 5.6 (deprecated, use XAMPP 7.x). To run: install XAMPP / WAMP / Laragon, extract project to htdocs, import the included .sql file via phpMyAdmin, edit the connection file (usually config.php or db_connect.php) with your DB credentials, browse to the project URL in your browser.

How do I set up the database for this PHP project?

Open phpMyAdmin (http://localhost/phpmyadmin/ on XAMPP), create a new empty database with the name specified in the project’s config.php. Click the Import tab, choose the included .sql file, click Go. Then edit config.php (or includes/connection.php) with: ‘localhost’, your MySQL username (usually ‘root’), your MySQL password (usually blank for XAMPP), and the database name.

Can I use this PHP project for a BSIT capstone or thesis?

Yes, but extend it. A bare CRUD app is too narrow for full capstone scope. Add: user roles via session checks, reports/dashboards (Chart.js + AJAX), PDF exports (TCPDF library), email notifications (PHPMailer), real domain extension (analytics, audit log, multi-branch support). Pair with Chapter 1-5 documentation matching your panel’s rubric.

Why am I getting ‘connection error’ or ‘undefined function mysqli_connect’?

Three common PHP issues: (1) Connection error: Apache + MySQL services not running in XAMPP control panel, OR database name in config.php does not match what you created in phpMyAdmin. (2) ‘undefined function mysqli_connect’: MySQL extension not enabled, in php.ini uncomment extension=mysqli (then restart Apache). (3) ‘No such file or directory’: MySQL socket path wrong, use 127.0.0.1 instead of localhost in the connection string.

Where can I find more PHP projects with source code?

Browse the PHP Projects hub for the full library (300+ vanilla PHP systems). For modern PHP MVC alternatives see Laravel Projects (74 systems) or CodeIgniter Projects (32 systems). For BSIT-focused capstone idea lists see 150 Best Capstone Project Ideas.

Related PHP Projects

 

 

 

 

Leave a Comment