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, çağrılan bir fonksiyon showCustomer()
yürütülür. İşlev, olay tarafından tetiklenir onchange
:
gösterMüşteri
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();
}
İşlev showCustomer()
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>";
?>