133 lines
3.8 KiB
PHP
133 lines
3.8 KiB
PHP
<?php
|
|
$pageTitle = '网站后台管理 - 修改文章';
|
|
$page = 'articles';
|
|
include_once("header.php");
|
|
?>
|
|
|
|
<?php
|
|
// 接收文章ID
|
|
$id = $_REQUEST["id"];
|
|
|
|
if (isset($_POST["title"])) {
|
|
// 接收标题,作者,内容等数据
|
|
$title = $_POST["title"];
|
|
$author = $_POST["author"];
|
|
$content = $_POST["content"];
|
|
|
|
// 设置为+8时区,读取系统时间
|
|
date_default_timezone_set('PRC');
|
|
$time = date("Y-m-d H:i:s");
|
|
|
|
// 插入数据库
|
|
$sql = "update articles set title='$title', author='$author', content='$content', time='$time' where id='$id'";
|
|
if (mysqli_query($conn, $sql) === TRUE) {
|
|
echo "<script>alert('文章修改成功');location.href='articles_list.php'</script>";
|
|
} else {
|
|
echo "Error: " . $sql . "<br>" . $conn->error;
|
|
}
|
|
}
|
|
|
|
// 获取文章内容用于编辑器初始化
|
|
$sql = "select * from articles where id = $id";
|
|
$result = mysqli_query($conn, $sql);
|
|
$row = mysqli_fetch_assoc($result);
|
|
$initialContent = htmlspecialchars($row["content"], ENT_QUOTES, 'UTF-8');
|
|
?>
|
|
|
|
<!-- 引入 Vditor -->
|
|
<link rel="stylesheet" href="https://unpkg.com/vditor@3.10.8/dist/index.css" />
|
|
<script src="https://unpkg.com/vditor@3.10.8/dist/index.min.js"></script>
|
|
|
|
<main class="main-content">
|
|
<div class="page-header">
|
|
<h2>修改文章</h2>
|
|
<p>修改博客的文章</p>
|
|
</div>
|
|
<div class="form-card">
|
|
<form action="" method="post">
|
|
<div class="form-group">
|
|
<label for="title">文章标题</label>
|
|
<input type="text" id="title" name="title" placeholder="请输入文章标题" value="<?php echo $row["title"]; ?>"
|
|
required>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="author">文章作者</label>
|
|
<input type="text" id="author" name="author" placeholder="请输入文章作者" value="<?php echo $row["author"]; ?>"
|
|
required>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="content">文章内容</label>
|
|
<div id="vditor"></div>
|
|
<textarea id="content" name="content" style="display:none;" required></textarea>
|
|
</div>
|
|
|
|
<div class="btn-group">
|
|
<button type="submit" class="btn btn-primary">提交</button>
|
|
<a href="articles_list.php" class="btn btn-secondary">返回文章列表</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</main>
|
|
|
|
<script>
|
|
// 初始化 Vditor
|
|
const vditor = new Vditor('vditor', {
|
|
height: 480,
|
|
placeholder: '请输入文章内容...',
|
|
theme: 'classic',
|
|
toolbar: [
|
|
'headings',
|
|
'bold',
|
|
'italic',
|
|
'strike',
|
|
'|',
|
|
'line',
|
|
'quote',
|
|
'list',
|
|
'ordered-list',
|
|
'check',
|
|
'|',
|
|
'code',
|
|
'inline-code',
|
|
'link',
|
|
'table',
|
|
'|',
|
|
'undo',
|
|
'redo',
|
|
'|',
|
|
'preview',
|
|
'fullscreen'
|
|
],
|
|
input: (value) => {
|
|
// 同步内容到 textarea
|
|
document.getElementById('content').value = value;
|
|
},
|
|
after: () => {
|
|
// 初始化完成后设置内容
|
|
vditor.setValue(<?php echo json_encode($row["content"]); ?>);
|
|
}
|
|
});
|
|
|
|
// 表单提交前同步内容
|
|
document.querySelector('form').addEventListener('submit', function() {
|
|
document.getElementById('content').value = vditor.getValue();
|
|
});
|
|
</script>
|
|
|
|
<style>
|
|
.vditor {
|
|
border: 1px solid #d1d5db !important;
|
|
border-radius: 8px !important;
|
|
}
|
|
|
|
.vditor-reset {
|
|
font-family: inherit !important;
|
|
font-size: 14px !important;
|
|
}
|
|
</style>
|
|
|
|
</body>
|
|
</html>
|