AJAX Veritabanı Örneği
AJAX, bir veritabanı ile etkileşimli iletişim için kullanılabilir.
AJAX Veritabanı Örneği
Aşağıdaki örnek, bir web sayfasının AJAX ile bir veritabanından nasıl bilgi alabileceğini gösterecektir:
Örnek
Customer info will be listed here...
Örnek Açıklama - showCustomer() İşlevi
Bir kullanıcı yukarıdaki açılır listeden bir müşteri seçtiğinde, "showCustomer()" adlı bir işlev yürütülür. İşlev, "onchange" olayı tarafından tetiklenir:
gösterMüşteri
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();
}
showCustomer() işlevi aşağıdakileri yapar:
- Bir müşterinin seçilip seçilmediğini kontrol edin
- Bir XMLHttpRequest nesnesi oluşturun
- Sunucu yanıtı hazır olduğunda yürütülecek işlevi oluşturun
- İsteği sunucudaki bir dosyaya gönderin
- URL'ye bir parametrenin (q) eklendiğine dikkat edin (açılır listenin içeriğiyle birlikte)
AJAX Sunucu Sayfası
Yukarıdaki JavaScript tarafından çağrılan sunucudaki sayfa, "getcustomer.php" adlı bir PHP dosyasıdır.
"getcustomer.php" içindeki kaynak kod, bir veritabanına karşı bir sorgu çalıştırır ve sonucu bir HTML tablosunda döndürür:
<?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>";
?>