JS AsyncLesson #283

AJAX Database Example

AJAX can be used for interactive communication with a database.

AJAX can be used for interactive communication with a database.


Share

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

Example Code

javascript
Try it Yourself
function showCustomer(str) {

  if (str == "") {

    document.getElementById("txtHint").innerHTML = "";

    return;

  }

  const xhttp = new XMLHttpRequest();

  xhttp.onload = function() {

    document.getElementById("txtHint").innerHTML = this.responseText;

  }

  xhttp.open("GET", "getcustomer.php?q="+str);

  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:

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>"; ?>

Interactive Code Examples

showCustomer

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
function showCustomer(str) {

  if (str == "") {

    document.getElementById("txtHint").innerHTML = "";

    return;

  }

  const xhttp = new XMLHttpRequest();

  xhttp.onload = function() {

    document.getElementById("txtHint").innerHTML = this.responseText;

  }

  xhttp.open("GET", "getcustomer.php?q="+str);

  xhttp.send();

}