AJAX Database 例子
AJAX can be used for interactive communication with a database.
AJAX数据库 例子
The following example will demonstrate how a web page can fetch
information from a database with AJAX:
例子
Select a customer:
Alfreds Futterkiste
North/South
Wolski Zajazd
Customer info will be listed here...
例子 Explained - The showCustomer() 函数
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) {
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:
$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 "
echo "
";echo "
CustomerID";echo
"
" . $cid . "";echo "
CompanyName";echo "
" . $cname. "
";echo "
ContactName";echo "
" . $name . "";echo "
Address";echo "
" .$adr . "
";echo "
City";echo "
" . $city . "";echo "
PostalCode";echo "
" .$pcode . "
";echo "
Country";echo "
" . $country ."
";echo "
";echo "
";?>