思路
list.php列表展示
1、从文件当中读取内容,并解码
$json = file_get_contents('data.json');
$songs = json_decode($json, true);
2、将数据展示在列表,利用foreach对数据一一显示在列表当中
<?php foreach ($songs as $item): ?>
<tr>
<td class="align-middle"><?php echo $item['title']; ?></td>
</tr>
<?php endforeach ?>
add.php
1、表单提交给自身网页进行处理
2、给每个输入框一个name值
3、php处理的时候,可以通过$_POST[‘title’]对数据进行处理
4、处理之后将数据保存到文件/数据库当中
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<label for="title">标题</label>
<input type="text" class="form-control " id="title" name="title">
<button class="btn btn-primary btn-block">保存</button>
</form>
// 读取已有数据
$songs = json_decode(file_get_contents('data.json'), true);
// 追加新数据
$songs[] = $new_song;
// 将追加的结果写入文件
file_put_contents('data.json', json_encode($songs));
del.php
1、需要执行删除就必须提供你想要删除的是谁,获取要删除的ID
这里的话 是通过一开始从文件/数据库当中读取出来的$item[‘id’]值,就可以判断是要删除哪一个,同时删除按钮a标签?后面是可以附带值传输给后台的
<a class="btn btn-outline-danger btn-sm" href="del.php?id=<?php echo $item['id']; ?>">删除</a>
2、从数据库/文件当中读取数据
3、通过ID在数据中找到对应要删除的键,删除之后将数据放回文件/数据库中
源码
del.php
<?php
// 只要有人请求我 del.php 我就执行删除操作
// 如果需要我执行删除就必须提供你想要删除的是谁
// 一般情况下如果客户端需要给服务端提供简单的数据标识,
// 这种情况都会采用URL 地址传递问号参数的方式传递
// 校验(客户端来的东西都不能信)
if (empty($_GET['id'])) {
exit('你必须提供要删除的数据ID'); // exit 会直接结束脚本的运行
}
// 确保客户端提交了 ID
$id = $_GET['id'];
// 1. 读取已有数据
$json = file_get_contents('data.json');
// 2. 反序列化
$songs = json_decode($json, true);
// 3. 遍历数组找到要删除的元素
foreach ($songs as $item) {
if ($item['id'] === $id) {
// 找到了要删除的数据
// 4. 在数组中删除这个元素
// 4.1. 找到这个数据在数组的下标
$index = array_search($item, $songs);
array_splice($songs, $index, 1);
// 5. 将删除过后的数组序列化成 JSON 字符串
$new_json = json_encode($songs);
// 6. 持久化
file_put_contents('data.json', $new_json);
break;
}
}
// 跳转回去
header('Location: /songs/list.php');
add.php
<?php
function receive_form () {
// global $error_type;
// 1. 校验客户端提交的数据
// 1.1. 校验标题
// empty($_POST['title']) === !(isset($_POST['title']) && $_POST['title'] !== '')
// empty函数的作用就是判断一个成员是否为空(未定义、值为false)
if (empty