JSON PHP
- पिछला पृष्ठ JSON सर्वर
- अगला पृष्ठ JSON HTML
जेसन के सामान्य उपयोग वेब सर्वर से डाटा पढ़ना और फिर उसे वेब पेज पर दिखाना है。
इस चैप्टर में आपको जेसन डाटा को PHP सर्वर और क्लायंट के बीच आदान-प्रदान करने के तरीके सिखाया जाएगा。
PHP फ़ाइल
PHP जेसन को संसाधित करने के लिए आंतरिक फ़ंक्शन प्रदान करता है。
PHP फ़ंक्शन का उपयोग करके json_encode()
،PHP में वस्तु जेसन फ़ॉर्मेट में बदल सकती है:
PHP फ़ाइल
<?php $myObj->name = "Bill Gates"; $myObj->age = 62; $myObj->city = "Seattle"; $myJSON = json_encode($myObj); echo $myJSON; ?>
क्लायंट जावास्क्रिप्ट
यह एक क्लायंट पर जावास्क्रिप्ट है, जो पिछले उदाहरण के PHP फ़ाइल को AJAX कॉल के द्वारा अनुरोध करता है:
उदाहरण
स्वीकार करना JSON.parse()
परिणाम को JavaScript ऑब्जेक्ट के रूप में बदलें:
var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myObj = JSON.parse(this.responseText); document.getElementById("demo").innerHTML = myObj.name; }); }); xmlhttp.open("GET", "demo_file.php", true); xmlhttp.send();
PHP एरे
PHP फ़ंक्शन json_encode()
तो PHP में एरे भी JSON में बदल जाएगा:
PHP फ़ाइल
<?php $myArr = array("Bill Gates", "Steve Jobs", "Elon Musk"); $myJSON = json_encode($myArr); echo $myJSON; ?>
क्लायंट जावास्क्रिप्ट
यह एक क्लायंट पर जावास्क्रिप्ट है, जो पिछले उदाहरण के PHP फ़ाइल को AJAX कॉल के द्वारा अनुरोध करता है:
उदाहरण
यहाँ आपको JSON.parse()
परिणाम को JavaScript एरे के रूप में बदलें:
var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myObj = JSON.parse(this.responseText); document.getElementById("demo").innerHTML = myObj[2]; }); }); xmlhttp.open("GET", "demo_file_array.php", true); xmlhttp.send();
PHP डाटाबेस
PHP सर्वर पार्श्व प्रोग्रामिंग भाषा है, इसे केवल सर्वर द्वारा कार्य करने वाले कामों के लिए उपयोग किया जाना चाहिए, जैसे डाटाबेस पहुंचना。
यहाँ सर्वर पर एक डाटाबेस होने की कल्पना करें जो क्लायंट, उत्पाद और आपूर्तिकर्ता डाटा शामिल करता है。
इस समय, आपको "क्लायंट" तालिका में पहले दस रिकॉर्ड अर्जित करने के लिए सर्वर की अनुरोध करनी होगी:
उदाहरण
यहाँ आपको JSON.stringify()
JavaScript ऑब्जेक्ट को JSON में बदलें:
obj = { "table":"customers", "limit":10 }; dbParam = JSON.stringify(obj); xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; }); }); xmlhttp.open("GET", "demo_json_db.php?x=" + dbParam, true); xmlhttp.send();
उदाहरण व्याख्या:
- table और limit अटिब्यूट वाले ऑब्जेक्ट को परिभाषित करें。
- इस ऑब्जेक्ट को JSON शब्दकोश में बदलें।
- इस PHP फ़ाइल को अनुरोध करें, जिसमें JSON को पैरामीटर के रूप में भेजा जाए।
- अनुरोध तक इंतजार करें (जीएसओन के रूप में)。
- PHP फ़ाइल से प्राप्त परिणामों को दिखाएं。
PHP फ़ाइल देखें
PHP फ़ाइल
<?php header("Content-Type: application/json; charset=UTF-8"); $obj = json_decode($_GET["x"], false); $conn = new mysqli("myServer", "myUser", "myPassword", "Northwind"); $result = $conn->query("SELECT name FROM ".$obj->$table." LIMIT ".$obj->$limit); $outp = array(); $outp = $result->fetch_all(MYSQLI_ASSOC); echo json_encode($outp); ?>
PHP फ़ाइल का वर्णन:
- अनुरोध को ऑब्जेक्ट में परिवर्तित करें, PHP फ़ंक्शन का उपयोग करते हुए
json_decode()
. - डाटाबेस पर्यवेक्षण करें, अनुरोध के डाटा के साथ एलिस्ट भरें。
- एलिस्ट को ऑब्जेक्ट में जोड़ें, उपयोग करते हुए
json_encode()
फ़ंक्शन ऑब्जेक्ट को JSON से वापस लौटाएं。
परिणाम दृश्यमान करें
PHP फ़ाइल से प्राप्त परिणाम को JavaScript ऑब्जेक्ट में बदलें, या इस उदाहरण में, एक JavaScript एलिस्ट
उदाहरण
स्वीकार करना JSON.parse()
JSON को JavaScript ऑब्जेक्ट में बदलें:
... xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myObj = JSON.parse(this.responseText); for (x in myObj) { txt += myObj[x].name + "<br>"; }); document.getElementById("demo").innerHTML = txt; }); }); ...
PHP तरीका = POST
सेवादाता को डाटा भेजने के समय, अक्सर बेहतर है कि आप HTTP POST तरीके का उपयोग करें。
अगर आप AJAX अनुदेश को POST तरीके से भेजना चाहते हैं, तो इस तरीके को निर्दिष्ट करें और सही सहेजीदारी रखें。
सेवादाता को भेजे गए डाटा अब यह होना चाहिए .send();
तरीके के पैरामीटर:
उदाहरण
obj = { "table":"customers", "limit":10 }; dbParam = JSON.stringify(obj); xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myObj = JSON.parse(this.responseText); for (x in myObj) { txt += myObj[x].name + "<br>"; }); document.getElementById("demo").innerHTML = txt; }); }); xmlhttp.open("POST", "demo_json_db.php", true); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.send("x=" + dbParam);
PHP फ़ाइल में एकमात्र अंतर यह है कि डाटा प्रेषण की विधि का प्राप्त होता है。
PHP फ़ाइल
स्वीकार करना $_POST
नहीं $_GET
:
<?php header("Content-Type: application/json; charset=UTF-8"); $obj = json_decode($_POST["x"], false); $conn = new mysqli("myServer", "myUser", "myPassword", "Northwind"); $result = $conn->query("SELECT name FROM ".$obj->$table." LIMIT ".$obj->$limit); $outp = array(); $outp = $result->fetch_all(MYSQLI_ASSOC); echo json_encode($outp); ?>
- पिछला पृष्ठ JSON सर्वर
- अगला पृष्ठ JSON HTML