|||

ورود به حساب کاربری

شماره همراه خود را وارد کنید

ورود با کلمه عبور ارسال کد تایید

فراموشی کلمه عبور

در صورت فراموشی کلمه عبور شماره موبایل خود را وارد کنید.

ورود با کلمه عبور تنظیم مجدد

ورود به حساب کاربری

در صورتی که کلمه عبور خود را بروزرسانی کرده اید با کلمه عبور وارد حساب کاربری خود شوید.

شماره همراه خود را وارد کنید

ورود و ادامه

JSON با PHP

استفاده معمول از JSON برای خواندن داده ها از یک وب سرور است و داده ها را در یک صفحه وب نمایش می دهد.
این فصل به شما در مورد چگونگی مبادله اطلاعات JSON بین سرویس گیرنده و یک سرور PHP آموزش خواهیم داد.

فایل PHP

PHP دارای برخی از توابع درونی برای مدیریت JSON است.
اشیاء در PHP می توانند با استفاده از تابع json_encode () به JSON تبدیل شود.

فایل php
<?php
$myObj->name = "John";
$myObj->age = 30;
$myObj->city = "New York";

$myJSON = json_encode($myObj);

echo $myJSON;
?>
مشاهده مثال

سرویس گیرنده (client)جاوا اسکریپت

با استفاده از یک ارتباط AJAX برای درخواست فایل، مانند مثال بالا استفاده می کنیم.

سرویس گیرنده جاوااسکریپت
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var myObj = JSON.parse(this.responseText);
        document.getElementById("demo").innerHTML = myObj.name;
    }
};
xmlhttp.open("GET", "demo_file.php", true);
xmlhttp.send(); 
مشاهده مثال

آرایه PHP

آرایه ها در PHP نیز هنگام استفاده از تابع  json_encode () به JSON تبدیل می شوند:

آرایه php
<?php
$myArr = array("John", "Mary", "Peter", "Sally");

$myJSON = json_encode($myArr);

echo $myJSON;
?>
مشاهده مثال

سرویس گیرنده (client)جاوا اسکریپت

در اینجا یک جاوا اسکریپت در سرویس گیرنده است، با استفاده از یک ارتباط AJAX برای درخواست فایل PHP از مثال بالا از آرایه:

تبدیل به آرایه
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var myObj = JSON.parse(this.responseText);
        document.getElementById("demo").innerHTML = myObj[2];
    }
};
xmlhttp.open("GET", "demo_file_array.php", true);
xmlhttp.send(); 
مشاهده مثال

بانک اطلاعاتی PHP

PHP زبان برنامه نویسی سمت سرور است و باید برای عملیاتی که تنها توسط یک سرور انجام می شود مانند دسترسی به پایگاه داده مورد استفاده قرار  می گیرد.

تصور کنید که یک پایگاه داده روی سرور دارید که شامل مشتریان، محصولات و تامین کنندگان است.

شما می خواهید درخواست خود را به سرور که در آن شما برای اولین بار 10 درخواست در جدول "مشتریان" است درخواست کنید.

بانک اطلاعاتی php
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", "json_demo_db.php?x=" + dbParam, true);
xmlhttp.send(); 
مشاهده مثال

توضیح مثال

  • تعریف یک شیء حاوی یک ویژگی جدول و یک ویژگی محدود است
  •  جسم را به یک رشته JSON تبدیل کنید.
  •  ارسال یک درخواست به فایل PHP، با رشته JSON به عنوان یک پارامتر.
  • صبر تا درخواست دوباره با نتیجه (به عنوان JSON)
  •  نمایش نتیجه دریافت شده از فایل PHP

نگاهی به فایل PHP

query("SELECT name FROM ".$obj->table." LIMIT ".$obj->limit); $outp = array(); $outp = $result->fetch_all(MYSQLI_ASSOC); echo json_encode($outp); ?>

توضیحات فایل php

  • درخواست را به یک شی تبدیل کنید، با استفاده از تابع json_decode ().
  •     به پایگاه داده دسترسی پیدا کنید و آرایه را با داده های درخواست شده پر کنید.
  •      آرایه را به یک شی اضافه کنید و جسم را به عنوان JSON با استفاده از تابع json_encode () باز کنید.

تکرار از طریق نتیجه

تبدیل نتیجه دریافت شده از فایل PHP به یک جاوا اسکریپت یا یک آرایه جاوااسکریپت تبدیل می شود.

تکرار در نتیجه
...
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myObj = JSON.parse(this.responseText);
        for (x in myObj) {
            txt += myObj[x].name + "
"; } document.getElementById("demo").innerHTML = txt; } }; ...
مشاهده مثال

روش POST= PHP

هنگام ارسال داده به سرور، اغلب بهترین استفاده از روش HTTP POST است.
برای ارسال درخواست AJAX با استفاده از روش POST، روش و سرصفحه درست را مشخص کنید.
داده های فرستاده شده به سرور باید یک استدلال به روش .send () باشد:

روش POST= PHP
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 + "
"; } document.getElementById("demo").innerHTML = txt; } }; xmlhttp.open("POST", "json_demo_db_post.php", true); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.send("x=" + dbParam);
مشاهده مثال

تنها تفاوت در فایل PHP، روش برای گرفتن داده های منتقل شده است.

فایل PHP

query("SELECT name FROM ".$obj->table." LIMIT ".$obj->limit); $outp = array(); $outp = $result->fetch_all(MYSQLI_ASSOC); echo json_encode($outp); ?>

 

نظر شما

>

مقالات و دروس

عضویت در خبرنامه شرکت نرم افزاری وب مهراز

برای اطلاع از بسته ها ، تخفیف های استثنایی و تازه های ما به خبرنامه وب مهراز بپیوندید.

لطفا شماره همراه صحیح وارد کنید.
لطفا ایمیل صحیح وارد کنید.

مقالات مرتبط

|||

ورود به حساب کاربری

شماره همراه خود را وارد کنید

ورود با کلمه عبور ارسال کد تایید

فراموشی کلمه عبور

در صورت فراموشی کلمه عبور شماره موبایل خود را وارد کنید.

ورود با کلمه عبور تنظیم مجدد