JSON PHP
- ముందు పేజీ JSON సర్వర్
- తరువాత పేజీ JSON HTML
JSON యొక్క సాధారణ ఉపయోగం వెబ్ సర్వర్ నుండి డాటాను పడుతుండి, అప్పుడు వెబ్ పేజీలో ఆ డాటాను ప్రదర్శించడం ఉంటుంది.
ఈ చాప్టర్ మీరు PHP సర్వర్ మరియు క్లయింట్ మధ్య JSON డాటా ఎక్స్చేంజ్ చేయడానికి చూపుస్తుంది.
PHP ఫైల్
PHP JSON ని ప్రాసెస్ చేయడానికి అంతర్భాగంగా ఫంక్షన్లను అందిస్తుంది.
PHP ఫంక్షన్ ఉపయోగించి దీనిని చేయవచ్చు: json_encode()
PHP లో ఆబ్జెక్ట్లను JSON గా మార్చవచ్చు:
PHP ఫైల్
<?php నా అబ్జెక్ట్ పేరును "బిల్ గేట్స్" చేస్తారు; నా అబ్జెక్ట్ వయస్సును 62 చేస్తారు; $myObj->city = "Seattle"; $myJSON = json_encode($myObj); echo $myJSON; ?>
క్లయింట్ జావాస్క్రిప్ట్
ఈటి కాంటెంట్ లో ఉన్న జావాస్క్రిప్ట్ ను సర్వర్ నుండి అభ్యర్ధించడానికి ఆజ్ఎక్స్ ను ఉపయోగించాలి:
ఉదాహరణ
ఉపయోగించండి JSON.parse()
ఫలితాన్ని జావాస్క్రిప్ట్ ఆబ్జెక్ట్ లోకి మార్చండి:
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; ?>
క్లయింట్ జావాస్క్రిప్ట్
ఈటి కాంటెంట్ లో ఉన్న జావాస్క్రిప్ట్ ను సర్వర్ నుండి అభ్యర్ధించడానికి ఆజ్ఎక్స్ ను ఉపయోగించాలి:
ఉదాహరణ
ఉపయోగించండి JSON.parse()
ఫలితాన్ని జావాస్క్రిప్ట్ అర్రేయ్ లోకి మార్చండి:
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()
జావాస్క్రిప్ట్ ఆబ్జెక్ట్ ని 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();
ఉదాహరణ వివరణం:
- టేబుల్ అంశం మరియు లిమిట్ అంశం కలిగిన ఆబ్జెక్ట్ ని నిర్వచించండి。
- ఈ ఆబ్జెక్ట్ను JSON స్ట్రింగ్గా మార్చండి.
- ఈ PHP ఫైలుకు JSON పరామితులతో అభ్యర్థించండి。
- అభ్యర్థించిన ఫలితాన్ని 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 ఫైలు నుండి ప్రాప్తమయిన ఫలితాన్ని జావాస్క్రిప్ట్ ఆబ్జెక్ట్గా మార్చండి లేదా ఈ ఉదాహరణలో జావాస్క్రిప్ట్ అరెయ్ గా ఉంటుంది:
ఉదాహరణ
ఉపయోగించండి JSON.parse()
JSON ను జావాస్క్రిప్ట్ ఆబ్జెక్ట్గా మార్చండి:
... 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 పద్ధతిని ఉపయోగించాలి。
పోస్ట్ పద్ధతిని ఉపయోగించడానికి పోస్ట్ మెథడ్ని నిర్దేశించండి మరియు సరైన హెడర్లను తెలియజేయండి。
సర్వర్కు దయచేసి పంపడానికి ఉపయోగించాల్సిన డాటా కావాలి ఇప్పుడు: .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