JSON PHP
JSON ਦਾ ਆਮ ਇਸਤੇਮਾਲ ਵੈਬ ਸਰਵਰ ਤੋਂ ਡਾਟਾ ਪ੍ਰਾਪਤ ਕਰਨਾ ਹੈ ਅਤੇ ਫਿਰ ਉਹ ਸਾਈਟ ਵਿੱਚ ਪ੍ਰਦਰਸ਼ਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ。
ਇਸ ਚਾਪ ਵਿੱਚ ਤੁਹਾਨੂੰ ਕਿਵੇਂ ਕਲਾਈਮੈਂਟ ਅਤੇ PHP ਸਰਵਰ ਦਰਮਿਆਨ JSON ਡਾਟਾ ਅਦਾਨ-ਪ੍ਰਦਾਨ ਕਰਨ ਦੀ ਸਿੱਖਿਆ ਦਿੱਤੀ ਜਾਵੇਗੀ。
PHP ਫਾਈਲ
PHP ਵਿੱਚ JSON ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ ਬੁਨਿਆਦੀ ਫੰਕਸ਼ਨ ਮੁਹੱਈਆ ਹਨ。
PHP ਫੰਕਸ਼ਨ ਦੀ ਮਦਦ ਨਾਲ json_encode()
PHP ਵਿੱਚ ਆਬਜ਼-ਜਾਂ-ਵਸਤੂ ਨੂੰ JSON ਵਿੱਚ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ:
PHP ਫਾਈਲ
<?php ਮੇਰੇ ਆਬਜ਼-ਜਾਂ-ਵਸਤੂ ਦਾ ਨਾਮ "ਬਿਲ ਗੇਟਸ" ਕਰ ਦੇਣਾ ਹੈ; ਮੇਰੇ ਆਬਜ਼-ਜਾਂ-ਵਸਤੂ ਦੀ ਉਮਰ ਨੂੰ 62 ਕਰ ਦੇਣਾ ਹੈ; $myObj->city = "Seattle"; $myJSON = json_encode($myObj); echo $myJSON; ?>
ਕਲਾਈਮੈਂਟ ਜਾਵਾਸਕ੍ਰਿਪਟ
ਇਹ ਕਲਾਈਮੈਂਟ 'ਤੇ ਜਾਵਾਸਕ੍ਰਿਪਟ ਹੈ ਜੋ AJAX ਕਾਲ ਨਾਲ PHP ਫਾਈਲ ਨੂੰ ਬੇਨਤੀ ਕਰਦਾ ਹੈ:
ਉਦਾਹਰਣ
ਵਰਤੋਂ 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; ?>
ਕਲਾਈਮੈਂਟ ਜਾਵਾਸਕ੍ਰਿਪਟ
ਇਹ ਕਲਾਈਮੈਂਟ 'ਤੇ ਜਾਵਾਸਕ੍ਰਿਪਟ ਹੈ ਜੋ AJAX ਕਾਲ ਨਾਲ PHP ਫਾਈਲ ਨੂੰ ਬੇਨਤੀ ਕਰਦਾ ਹੈ:
ਉਦਾਹਰਣ
ਕਿਰਪਾ ਕਰਕੇ ਇਸ ਦਾ ਉਪਯੋਗ ਕਰੋ: 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 ਫਾਈਲ ਤੋਂ ਪ੍ਰਾਪਤ ਨਤੀਜੇ ਨੂੰ 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 ਮੱਥਦਾਨ ਵਰਗੇ ਵਰਤੋਂ ਕਰੋ。
ਜੇਕਰ ਤੁਸੀਂ POST ਮੱਥਦਾਨ ਵਰਗੇ AJAX ਰਿਕਾਰਡ ਭੇਜਣਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਇਸ ਮੱਥਦਾਨ ਨੂੰ ਅਤੇ ਸਹੀ ਮੁੱਢਲੇ ਸ਼ੀਰਸ਼ਕ ਸੈੱਟ ਕਰੋ。
ਸੇਵਰ ਨੂੰ ਭੇਜਣ ਵਾਲੇ ਡਾਟਾ ਹੁਣ ਜ਼ਰੂਰੀ ਹੈ .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); ?>