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;
?>

PHP ਫਾਈਲ ਦਿਖਾਓ

ਕਲਾਈਮੈਂਟ ਜਾਵਾਸਕ੍ਰਿਪਟ

ਇਹ ਕਲਾਈਮੈਂਟ 'ਤੇ ਜਾਵਾਸਕ੍ਰਿਪਟ ਹੈ ਜੋ 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;
?>

PHP ਫਾਈਲ ਦਿਖਾਓ

ਕਲਾਈਮੈਂਟ ਜਾਵਾਸਕ੍ਰਿਪਟ

ਇਹ ਕਲਾਈਮੈਂਟ 'ਤੇ ਜਾਵਾਸਕ੍ਰਿਪਟ ਹੈ ਜੋ 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);
?>