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 "修改失败";
}
}