2016-07-03 2 views
0

Я использовал PHP API для получения данных JSON,, как получить данные JSON в обратном порядке, используя Jquery getJSON

$db_result_set = $db->prepare('SELECT p.Id, p.FirstName, p.MiddleName, p.LastName, p.Gender, p.Location, p.Email, p.Mobile,p.Message,b.BookTitle, b.BookGenre, b.BookWriter, b.BookDescription FROM personaldetails AS p LEFT JOIN bookdetails AS b ON b.UserId = p.Id ORDER BY p.Id DESC');; 

$db_result_set->execute(); 

$final = []; 
foreach ($db_result_set as $u) { 

    if (!isset($final[$u["Id"]])) { 
     $final[$u["Id"]]= [ 
      "Id" => $u["Id"], 
      "FirstName" => $u["FirstName"], 
      "MiddleName" => $u["MiddleName"], 
      "LastName" => $u["LastName"], 
      "Gender" => $u["Gender"], 
      "Location" => $u["Location"], 
      "Email" => $u["Email"], 
      "Mobile" => $u["Mobile"], 
      "Message" => $u["Message"], 
     ]; 
    } 
    $final[$u["Id"]]["books"][] = [ 
     "BookTitle" => $u["BookTitle"], 
     "BookGenre" => $u["BookGenre"], 
     "BookWriter" => $u["BookWriter"], 
     "BookDescription" => $u["BookDescription"], 
    ]; 

} 

    header('Content-type: application/json'); 
    echo json_encode($final,JSON_PRETTY_PRINT); 

выход этого API является;

{ 
"110": { 
    "Id": "110", 
    "FirstName": "", 
    "MiddleName": "", 
    "LastName": "", 
    "Gender": null, 
    "Location": "", 
    "Email": "", 
    "Mobile": "", 
    "Message": "", 
    "books": [ 
     { 
      "BookTitle": "", 
      "BookGenre": "", 
      "BookWriter": "", 
      "BookDescription": "" 
     } 
    ] 
}, 
"109": { 
    "Id": "109", 
    "FirstName": "", 
    "MiddleName": "", 
    "LastName": "", 
    "Gender": null, 
    "Location": "", 
    "Email": "", 
    "Mobile": "", 
    "Message": "", 
    "books": [ 
     { 
      "BookTitle": "", 
      "BookGenre": "", 
      "BookWriter": "", 
      "BookDescription": "" 
     } 
    ] 
}, 
"108": { 
    "Id": "108", 
    "FirstName": "", 
    "MiddleName": "", 
    "LastName": "", 
    "Gender": null, 
    "Location": "", 
    "Email": "", 
    "Mobile": "", 
    "Message": "", 
    "books": [ 
     { 
      "BookTitle": "", 
      "BookGenre": "", 
      "BookWriter": "", 
      "BookDescription": "" 
     } 
    ] 
}, 
"107": { 
    "Id": "107", 
    "FirstName": "", 
    "MiddleName": "", 
    "LastName": "", 
    "Gender": null, 
    "Location": "", 
    "Email": "", 
    "Mobile": "", 
    "Message": "", 
    "books": [ 
     { 
      "BookTitle": "", 
      "BookGenre": "", 
      "BookWriter": "", 
      "BookDescription": "" 
     } 
    ] 
}, 
"106": { 
    "Id": "106", 
    "FirstName": "", 
    "MiddleName": "", 
    "LastName": "", 
    "Gender": null, 
    "Location": "", 
    "Email": "", 
    "Mobile": "", 
    "Message": "", 
    "books": [ 
     { 
      "BookTitle": "", 
      "BookGenre": "", 
      "BookWriter": "", 
      "BookDescription": "" 
     } 
    ] 
}, 
"105": { 
    "Id": "105", 
    "FirstName": "", 
    "MiddleName": "", 
    "LastName": "", 
    "Gender": null, 
    "Location": "", 
    "Email": "", 
    "Mobile": "", 
    "Message": "", 
    "books": [ 
     { 
      "BookTitle": "", 
      "BookGenre": "", 
      "BookWriter": "", 
      "BookDescription": "" 
     } 
    ] 
}, 
"104": { 
    "Id": "104", 
    "FirstName": "", 
    "MiddleName": "", 
    "LastName": "", 
    "Gender": null, 
    "Location": "", 
    "Email": "", 
    "Mobile": "", 
    "Message": "", 
    "books": [ 
     { 
      "BookTitle": "", 
      "BookGenre": "", 
      "BookWriter": "", 
      "BookDescription": "" 
     } 
    ] 

Я хочу, чтобы отобразить данные в убывающем формате (т.е. 110,109,108 ---) в HTML.

, но когда я получаю данные json в html, используя функцию jquery getJSON. отображается в увеличенном формате (т. Е. 104,105,106,106, ---).

Как изменить данные, которые я получаю в html, используя функцию getJSON.

Код jquery в html;

function loadData(){ 
        var url = "http://localhost/ReadExchange/api.php"; 
        $.getJSON(url,function(json) { 
         console.log(json); 

        if(json) { 
         alert("Roger that"+JSON.stringify(json)); 
} 



       }); 

ответ

1

Порядок, вероятно, изменится, так как объект Javascript не имеет никакого порядка.

Я бы избавиться от ключей в PHP, так что вы просто массив в Javascript, который имеет тот же порядок, как в вашем PHP скрипт:

Просто используйте перед json_encode:

$final = array_values($final) 

array_values просто принимает значения массива и создает новый массив с числовыми клавишами от 0 вверх.

+0

работал! благодаря – Cooolranjan

0

Просто цикл через него в обратном порядке:

var kS = Object.keys(testJSON); 

for (var i=kS.length-1; i>=0 ; i--) { 

    console.log(testJSON[kS[i]]); 

} 
Смежные вопросы