LayUI & JQuery(Ajax) & PHP 練習 ~ 02_後端(PHP)接收由前端(JQuery Ajax)的JSON字串並透過後端(PHP)語法還原成對應物件 [jquery ajax object array to php]
LayUI & JQuery(Ajax) & PHP 練習 ~ 02_後端(PHP)接收由前端(JQuery Ajax)的JSON字串並透過後端(PHP)語法還原成對應物件 [jquery ajax object array to php]
GITHUB: https://github.com/jash-git/layui-jquery-php-example/tree/main/02
index.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="layui/css/layui.css"> </head> <body> <!-- body 末尾放置所有JS --> <script src="./js/jquery-3.7.1.js"></script> <script src="layui/layui.js"></script> <script> var myArray = [ { name: 'value1', age: 'value2' }, { name: 'value3', age: 'value4' } ]; // 將物件陣列轉換為 JSON 字串 var jsonData = JSON.stringify(myArray); $.ajax({ url: './index_api.php', type: 'POST', dataType: 'json', data: { JsonInput: jsonData }, beforeSend: function(){ }, success: function(data) { console.log('資料成功傳送到 PHP!'); var StrMsg=''; for (var i = 0; i < data.length; i++) { StrMsg+=data[i].name + ' - ' + data[i].age+'\n'; console.log(data[i].name + ' - ' + data[i].age); } alert(StrMsg); }, error: function() { }, complete: function() { } }); </script> </body> </html>
index_api.php
<?php header('Content-Type: application/json; charset=utf-8'); $jsonData = $_POST['JsonInput']; $dataArray = json_decode($jsonData, true); $data = array(); foreach ($dataArray as $obj) { $objectBuf = new stdClass(); $objectBuf->name = $obj['name']; $objectBuf->age = $obj['age']; $data[] = $objectBuf; } $objectBuf01 = new stdClass(); $objectBuf01->name = "jash.liao"; $objectBuf01->age = "XX"; $data[] = $objectBuf01; /*寫死回傳回傳物件 $data = array(); $object1 = new stdClass(); $object1->name = "John Doe"; $object1->age = 30; $data[] = $object1; $object2 = new stdClass(); $object2->name = "Jane Doe"; $object2->age = 25; $data[] = $object2; */ // Encode the array to JSON $Strjson = json_encode($data); echo $Strjson; ?>