1. 表单为post请求,但是action网址带get参数,实际上为post请求,get参数访问不到。
那就使用隐藏input保存参数,再post提交。
前端部分代码,使用了tinymce组件。
<form method="post" action="edit_text.php?id=<?php echo $articleId;?>" id="myForm">
<div class="form-group"> <!-- 输入框的容器 -->
<label for="title">文章标题:</label>
<input type="text" id="title" name="title" placeholder="请输入文章标题" value=<?php echo $title; ?>>
</div>
<div class="form-group"> <!-- 文本域的容器 -->
<label>文章内容:</label>
<!-- 隐藏字段,用于存储 TinyMCE 的内容 -->
<input type="hidden" id="tinymceContent" name="tinymceContent">
<input type="hidden" id="articleId" name="articleId" value=<?php echo $articleId;?>>
<textarea id="mytextarea" name="mytextarea"><?php echo $content; ?></textarea>
</div>
<input id="submit-content" type="submit" value="提交" class="submit-btn"> <!-- 提交按钮添加样式类 -->
</form>
<script>
document.getElementById('myForm').addEventListener('submit', function(event) {
// 阻止表单默认的提交行为
event.preventDefault();
// 获取 TinyMCE 的内容
var content = tinymce.get('mytextarea').getContent();
console.log(content);
// 将内容设置到隐藏字段中
document.getElementById('tinymceContent').value = content;
console.log(document.getElementById('tinymceContent').value);
// 现在可以手动提交表单
this.submit();
});
</script>
后端部分代码,数据库为mysql,使用pdo语句操作。
// 检查是否有POST数据提交
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
global $articleId;
// 接收表单数据
$title = $_POST['title'];
$content = $_POST['tinymceContent'];
$articleId=$_POST['articleId'];
// 准备SQL语句
$stmt = $pdo->prepare("update articles set title=:title ,content=:content where id=:id");
// 绑定参数并执行
$stmt->bindParam(':id', $articleId);
$stmt->bindParam(':title', $title);
$stmt->bindParam(':content', $content);
if ($stmt->execute()) {
echo "修改成功";
header("Location: article_list.php");
} else {
echo "修改失败";
}
}