LayUI & JQuery(Ajax) & PHP 練習 ~ 08_02_PHP 產生 LAYUI 導航列表 AJAX [PHP 產出JSON JQuery(Ajax)解析JSON JQuery產生HTML]
LayUI & JQuery(Ajax) & PHP 練習 ~ 08_02_PHP 產生 LAYUI 導航列表 AJAX [PHP 產出JSON JQuery(Ajax)解析JSON JQuery產生HTML]
GITHUB: https://github.com/jash-git/layui-jquery-php-example/tree/main/08_02
相關教學文件: ChatGPT
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="layui/css/layui.css"><!-- layui css 文件 -->
<style><!-- class css 高度設定-->
body {
margin: 20px;
}
</style>
</head>
<body> <!-- layui導航列(工具列/功能表) -->
<!-- 這是一個用於顯示導航列表的容器 -->
<ul class="layui-nav" lay-filter="nav-demo" id="layui-nav-top"></ul>
<br><br>
<ul class="layui-nav layui-nav-tree" lay-shrink="all">
<li class="layui-nav-item" lay-unselect><a href="#"><i class="layui-icon layui-icon-user"></i> 仪表图</a></li>
<li class="layui-nav-item" lay-unselect><a href="#">列表</a></li>
<li class="layui-nav-item" lay-unselect><a href="#">图文</a></li>
<li class="layui-nav-item layui-nav-itemed">
<a href="javascript:;">项目方案</a>
<dl class="layui-nav-child">
<dd><a href="#">驱动式</a></dd>
<dd><a href="#">扁平式</a></dd>
<dd><a href="#">龙虎式</a></dd>
</dl>
</li>
<li class="layui-nav-item">
<a href="javascript:;">项目方案</a>
<dl class="layui-nav-child">
<dd><a href="#">驱动式</a></dd>
<dd><a href="#">扁平式</a></dd>
<dd><a href="#">龙虎式</a></dd>
</dl>
</li>
</ul>
<!-- body 末尾放置所有JS -->
<script src="./js/jquery-3.7.1.js"></script>
<script src="layui/layui.js"></script>
<script>
$(document).ready(function () {
CallAPI();
layui.use(['element'], () => {//layui導航列(工具列/功能表) 所需要的JS模塊
})
$.ajax({
url: 'layui-nav-top.php', // 替換為你的 PHP 文件的路徑
type: 'GET',
dataType: 'json',
success: function(data){
// 將返回的數據動態生成導航列表
var navContainer = $('#layui-nav-top');
for(var i = 0; i < data.length; i++){
navContainer.append('<li class="layui-nav-item"><a href="#">'+data[i].name+'</a></li>');
}
// 更新 LAYUI
layui.nav('nav-demo');
}
});
});
function CallAPI() {
$.ajax({
url: './index_api.php',
type: 'Get',
beforeSend: function(){
},
success: function(data) {
var StrMsg='';
for (var i = 0; i < data.length; i++) {
StrMsg+=data[i].state + ' - ' + data[i].times+'\n';
console.log(data[i].state + ' - ' + data[i].times);
}
// JS彈出視窗顯示資料- alert(StrMsg);
//https://www.layuiweb.com/doc/index.htm ~ layer msg 顯示資料,藉此判斷可以使用layer
layui.use(['layer', 'form'], function(){
var layer = layui.layer
,form = layui.form;
layer.msg(StrMsg);
});
},
error: function() {
},
complete: function() {
}
});
}
</script>
</body>
</html>
layui-nav-top.php
<?php
// 這是一個簡單的例子,你需要根據你的需求修改
// 假設你有一個數據陣列
$data = array(
array('id' => 1, 'name' => '項目1'),
array('id' => 2, 'name' => '項目2'),
// 添加更多項目...
);
// 將數據轉換為 JSON 格式
echo json_encode($data);
?>
index_api.php
<?php
date_default_timezone_set("Asia/Taipei");
header('Content-Type: application/json; charset=utf-8');
$myfile = fopen("log.txt", "a");
$txt = date("Y-m-d H:i:s");
fwrite($myfile, $txt."\n");
$data = array();
$objectBuf01 = new stdClass();
$objectBuf01->state = "success";
$objectBuf01->times = $txt;
$data[] = $objectBuf01;
// Encode the array to JSON
$Strjson = json_encode($data);
echo $Strjson;
?>