用php+JQ+CSS3写出网址收藏的代码具有添加删除锁定模糊搜索网址格式为网址名url状态储存为本地txt
文件。
HTML代码:
<!DOCTYPE html>
<html>
<head>
<title>网址收藏</title>
<meta charset="UTF-8">
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<h1>网址收藏</h1>
<form id="add-form" class="form">
<h2>添加网址</h2>
<label for="name">网址名:</label>
<input type="text" id="name" name="name" required>
<label for="url">URL:</label>
<input type="url" id="url" name="url" required>
<button type="submit">添加</button>
</form>
<h2>网址列表</h2>
<input type="text" id="search" placeholder="搜索...">
<table id="list">
<thead>
<tr>
<th>网址名</th>
<th>URL</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<script src="script.js"></script>
</body>
</html>
CSS代码:
* {
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
font-family: Arial, sans-serif;
}
.container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
}
h1 {
text-align: center;
}
.form {
display: flex;
flex-direction: column;
margin-bottom: 20px;
}
.form label {
margin-bottom: 10px;
}
.form input {
padding: 10px;
margin-bottom: 20px;
border-radius: 5px;
border: none;
}
.form button {
padding: 10px;
background-color: #0078d7;
color: #fff;
border: none;
border-radius: 5px;
cursor: pointer;
}
#search {
width: 100%;
padding: 10px;
margin-bottom: 20px;
border-radius: 5px;
border: none;
}
table {
width: 100%;
border-collapse: collapse;
}
thead {
background-color: #0078d7;
color: #fff;
}
tbody tr:nth-child(even) {
background-color: #f2f2f2;
}
tbody tr:hover {
background-color: #e6f7ff;
}
td, th {
padding: 10px;
text-align: left;
}
td.actions button {
margin-right: 10px;
background-color: #0078d7;
color: #fff;
border: none;
border-radius: 5px;
cursor: pointer;
}
td.locked {
color: #a0a0a0;
font-style: italic;
}
JavaScript代码:
$(document).ready(function() {
// 读取本地txt文件,初始化网址列表
var list = [];
$.get("list.txt", function(data) {
if (data) {
list = JSON.parse(data);
renderList();
}
});
// 添加网址
$("#add-form").submit(function(event) {
event.preventDefault();
var name = $("#name").val();
var url = $("#url").val();
if (name && url) {
var item = {
name: name,
url: url,
locked: false
};
list.push(item);
saveList();
renderItem(item);
$("#name").val("");
$("#url").val("");
}
});
// 删除网址
$("#list").on("click", ".delete-btn", function() {
var index = $(this).closest("tr").index();
list.splice(index, 1);
saveList();
$(this).closest("tr").remove();
});
// 锁定网址
$("#list").on("click", ".lock-btn", function() {
var index = $(this).closest("tr").index();
list[index].locked = !list[index].locked;
saveList();
renderList();
});
// 模糊搜索
$("#search").on("input", function() {
renderList();
});
// 渲染网址列表
function renderList() {
$("#list tbody").empty();
var search = $("#search").val().toLowerCase();
for (var i = 0; i < list.length; i++) {
if (list[i].name.toLowerCase().indexOf(search) !== -1 || list[i].url.toLowerCase().indexOf(search) !== -1) {
renderItem(list[i]);
}
}
}
// 渲染单个网址
function renderItem(item) {
var tr = $("<tr>");
var nameTd = $("<td>").text(item.name);
var urlTd = $("<td>").html("<a href=\"" + item.url + "\" target=\"_blank\">" + item.url + "</a>");
var statusTd = $("<td>");
if (item.locked) {
statusTd.addClass("locked").text("已锁定");
} else {
statusTd.text("正常");
}
var actionsTd = $("<td>").addClass("actions");
var deleteBtn = $("<button>").addClass("delete-btn").text("删除");
var lockBtn = $("<button>").addClass("lock-btn").text(item.locked ? "解锁" : "锁定");
actionsTd.append(deleteBtn, lockBtn);
tr.append(nameTd, urlTd, statusTd, actionsTd);
$("#list tbody").append(tr);
}
// 保存网址列表到本地txt文件
function saveList() {
$.post("save.php", {data: JSON.stringify(list)});
}
});
PHP代码(保存网址列表到本地txt文件):
<?php
$data = $_POST["data"];
file_put_contents("list.txt", $data);
?>
注意:本地txt文件需要设置读写权限。
原文地址: https://www.cveoy.top/t/topic/bnqV 著作权归作者所有。请勿转载和采集!