AJAX Database Example
AJAX can be used for interactive communication with a database.
AJAX Database Example
The following example will demonstrate how a web page can fetch information from a database with AJAX:
Example Explained - The showCustomer() Function
When a user selects a customer in the dropdown list above, a function called showCustomer() is executed. The 
function is triggered by the onchange event:
showCustomer
 function showCustomer(str) {
  var xhttp; 
  if (str == "") {
    
 document.getElementById("txtHint").innerHTML = "";
    
 return;
  }
  xhttp = new XMLHttpRequest();
  
 xhttp.onreadystatechange = function() {
    if (this.readyState 
 == 4 && this.status == 200) {
    document.getElementById("txtHint").innerHTML 
 = this.responseText;
    }
  };
  xhttp.open("GET", 
 "getcustomer.php?q="+str, true);
  xhttp.send();
}
The showCustomer() function does the following:
- Check if a customer is selected
 - Create an XMLHttpRequest object
 - Create the function to be executed when the server response is ready
 - Send the request off to a file on the server
 - Notice that a parameter (q) is added to the URL (with the content of the dropdown list)
 
The AJAX Server Page
The page on the server called by the JavaScript above is a PHP file called "getcustomer.php".
The source code in "getcustomer.php" runs a query against a database, and returns the result in an HTML table:
  <?php
$mysqli = new mysqli("servername", "username", 
  "password", "dbname");
if($mysqli->connect_error) {
  
  exit('Could not connect');
}
$sql = "SELECT customerid, companyname, 
  contactname, address, city, postalcode, country
FROM customers WHERE 
  customerid = ?";
$stmt = $mysqli->prepare($sql);
  $stmt->bind_param("s", $_GET['q']);
  $stmt->execute();
$stmt->store_result();
$stmt->bind_result($cid, 
  $cname, $name, $adr, $city, $pcode, $country);
$stmt->fetch();
$stmt->close();
  
echo "<table>";
echo "<tr>";
echo "<th>CustomerID</th>";
echo 
  "<td>" . $cid . "</td>";
echo "<th>CompanyName</th>";
echo "<td>" . $cname 
  . "</td>";
echo "<th>ContactName</th>";
echo "<td>" . $name . "</td>";
  echo "<th>Address</th>";
echo "<td>" . 
  $adr . "</td>";
echo "<th>City</th>";
  echo "<td>" . $city . "</td>";
echo "<th>PostalCode</th>";
echo "<td>" . 
  $pcode . "</td>";
echo "<th>Country</th>";
echo "<td>" . $country . 
  "</td>";
echo "</tr>";
echo "</table>";
?>

