पीएचपी - AJAX और MySQL
AJAX का उपयोग डेटाबेस के साथ संवादात्मक संचार के लिए किया जा सकता है।
AJAX डेटाबेस उदाहरण
निम्नलिखित उदाहरण प्रदर्शित करेगा कि कैसे एक वेब पेज AJAX वाले डेटाबेस से जानकारी प्राप्त कर सकता है:
उदाहरण
उदाहरण समझाया - MySQL डेटाबेस
ऊपर के उदाहरण में हम जिस डेटाबेस तालिका का उपयोग करते हैं वह इस तरह दिखती है:
id | FirstName | LastName | Age | Hometown | Job |
---|---|---|---|---|---|
1 | Peter | Griffin | 41 | Quahog | Brewery |
2 | Lois | Griffin | 40 | Newport | Piano Teacher |
3 | Joseph | Swanson | 39 | Quahog | Police Officer |
4 | Glenn | Quagmire | 41 | Quahog | Pilot |
उदाहरण समझाया गया
उपरोक्त उदाहरण में, जब कोई उपयोगकर्ता ऊपर दी गई ड्रॉपडाउन सूची में किसी व्यक्ति का चयन करता है, तो "showUser ()" नामक एक फ़ंक्शन निष्पादित होता है।
फ़ंक्शन को ऑनचेंज इवेंट द्वारा ट्रिगर किया जाता है।
यहाँ एचटीएमएल कोड है:
उदाहरण
<html>
<head>
<script>
function showUser(str) {
if (str == "") {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
}
</script>
</head>
<body>
<form>
<select name="users" onchange="showUser(this.value)">
<option value="">Select a person:</option>
<option value="1">Peter Griffin</option>
<option value="2">Lois Griffin</option>
<option value="3">Joseph Swanson</option>
<option value="4">Glenn Quagmire</option>
</select>
</form>
<br>
<div id="txtHint"><b>Person info will be listed here...</b></div>
</body>
</html>
कोड स्पष्टीकरण:
सबसे पहले, जांचें कि व्यक्ति चुना गया है या नहीं। यदि कोई व्यक्ति नहीं चुना गया है (str == ""), txtHint की सामग्री को साफ़ करें और फ़ंक्शन से बाहर निकलें। यदि कोई व्यक्ति चुना जाता है, तो निम्न कार्य करें:
- XMLHttpRequest ऑब्जेक्ट बनाएं
- सर्वर प्रतिक्रिया तैयार होने पर निष्पादित होने के लिए फ़ंक्शन बनाएं
- सर्वर पर एक फ़ाइल के लिए अनुरोध भेजें
- ध्यान दें कि URL में एक पैरामीटर (q) जोड़ा जाता है (ड्रॉपडाउन सूची की सामग्री के साथ)
पीएचपी फ़ाइल
सर्वर पर उपरोक्त जावास्क्रिप्ट द्वारा बुलाया गया पृष्ठ एक PHP फ़ाइल है जिसे "getuser.php" कहा जाता है।
"getuser.php" में स्रोत कोड एक MySQL डेटाबेस के विरुद्ध एक क्वेरी चलाता है, और एक HTML तालिका में परिणाम देता है:
<!DOCTYPE html>
<html>
<head>
<style>
table {
width: 100%;
border-collapse: collapse;
}
table, td, th {
border: 1px solid black;
padding: 5px;
}
th {text-align: left;}
</style>
</head>
<body>
<?php
$q = intval($_GET['q']);
$con = mysqli_connect('localhost','peter','abc123','my_db');
if (!$con) {
die('Could not connect: ' . mysqli_error($con));
}
mysqli_select_db($con,"ajax_demo");
$sql="SELECT * FROM user WHERE id = '".$q."'";
$result = mysqli_query($con,$sql);
echo "<table>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
<th>Hometown</th>
<th>Job</th>
</tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['FirstName'] . "</td>";
echo "<td>" . $row['LastName'] . "</td>";
echo "<td>" . $row['Age'] . "</td>";
echo "<td>" . $row['Hometown'] . "</td>";
echo "<td>" . $row['Job'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
</body>
</html>
स्पष्टीकरण: जब क्वेरी जावास्क्रिप्ट से PHP फ़ाइल में भेजी जाती है, तो निम्न होता है:
- PHP एक MySQL सर्वर से कनेक्शन खोलता है
- सही व्यक्ति मिल जाता है
- एक HTML तालिका बनाई जाती है, डेटा से भरी जाती है, और "txtHint" प्लेसहोल्डर को वापस भेज दी जाती है