bugl
bugl
HomeLearnPatternsPathsSearch
HomeLearnPatternsPathsSearch

Loading lesson path

Learn/JavaScript/Objects, Classes, and Advanced Patterns
JavaScript•Objects, Classes, and Advanced Patterns

AJAX PHP Example

Flash cards

Review the key moves

1/4
Core idea

What is the main idea behind AJAX PHP Example?

Lesson checks

Practice each idea before moving on

Short Mimo-style checks built from this lesson's code, terms, and sequence.

1Quick choice

Which statement best captures the main point of this lesson?

2Fill blank

Complete the missing token from the example code.

<p>Start typing a name in the input field below:</p> <p>Suggestions: <span id="txtHint"></span></p> <form> First name: <input type="text" onkeyup="showHint(this.value)"> </form> <script> ___ showHint(str) {
3Order

Put the learning moves in the order that makes the concept easiest to apply.

The following example demonstrates how a web page can communicate with a web server while a user types characters in an input field:
AJAX is used to create more interactive applications.
The PHP File - "gethint.php"

AJAX is used to create more interactive applications.

AJAX PHP Example

The following example demonstrates how a web page can communicate with a web server while a user types characters in an input field:

Example

Start typing a name in the input field below:

Example Explained

In the example above, when a user types a character in the input field, a function called showHint() is executed.

The function is triggered by the onkeyup event.

Example

<p>Start typing a name in the input field below:</p> <p>Suggestions: <span id="txtHint"></span></p> <form> First name: <input type="text" onkeyup="showHint(this.value)"> </form> <script> function showHint(str) {
  if (str.length == 0) {
    document.getElementById("txtHint").innerHTML = "";
    return;
  } else {
  const xmlhttp = new XMLHttpRequest();
  xmlhttp.onload = function() {
    document.getElementById("txtHint").innerHTML = this.responseText;
  }
xmlhttp.open("GET", "gethint.php?q=" + str);
xmlhttp.send();
}
}
</script>

Code explanation

First, check if the input field is empty (str.length == 0). If it is, clear the content of the txtHint placeholder and exit the function.

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 is ready
  • Send the request off to a PHP file (gethint.php) on the server
  • Notice that q parameter is added gethint.php?q="+str
  • The str variable holds the content of the input field

The PHP File - "gethint.php"

The PHP file checks an array of names, and returns the corresponding name(s) to the browser:

<?php
// Array with names
$a[] = "Anna";
$a[] = "Brittany";
$a[] = "Cinderella";
$a[] = "Diana";
$a[] = "Eva";
$a[] = "Fiona";
$a[] = "Gunda";
$a[] = "Hege";
$a[] = "Inga";
$a[] = "Johanna";
$a[] = "Kitty";
$a[] = "Linda";
$a[] = "Nina";
$a[] = "Ophelia";
$a[] = "Petunia";
$a[] = "Amanda";
$a[] = "Raquel";
$a[] = "Cindy";
$a[] = "Doris";
$a[] = "Eve";
$a[] = "Evita";
$a[] = "Sunniva";
$a[] = "Tove";
$a[] = "Unni";
$a[] = "Violet";
$a[] = "Liza";
$a[] = "Elizabeth";
$a[] = "Ellen";
$a[] = "Wenche";
$a[] = "Vicky";
 // 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";
 }
 }
 }
}
// Output "no suggestion" if no hint was found or output correct values
 echo $hint === "" ? "no suggestion" : $hint;
?>

Previous

AJAX XML Example

Next

AJAX ASP Example