php - 我的 html 代码没有在我的编辑帖子表单中正确回显/
问题描述
所以,我有一个编辑帖子表单,我必须使用 php 从帖子中选择内容和标题,但是当我尝试这样做时,代码根本不起作用。下面是代码,我尝试将整个代码放在 echo "" 中,仍然无法正常工作。我只是找不到这里的问题。
<?php
$sql_get = "SELECT * FROM posts WHERE id=$pid LIMIT 1";
$res = mysqli_query($conn, $sql_get);
if(mysqli_num_rows($res) > 0){
while($row = mysqli_fetch_assoc($res)) {
$title = $row['title'];
$content = $row['content'];
}
?>
<form action='includes/edit_post.inc.php?pid=<?php echo "$pid";?>' method='post' enctype='multipart/form-data'>
<div class='input-group'>
<label>Title</label>
<input placeholder='Title' name='title' type='text' value='<?php echo "$title";?>' autofocus-size='48'><br /> <br /></div>
<div class='input-group'>
<label>Content</label></div>
<div class='input-group'>
<textarea placeholder='Content' name='content' rows='20' cols='50'><?php echo"$content";?></textarea><br /></div>
<input name="update" type="submit" value="Update" class="btn">
</form>
<?php } ?>
我选择将'$pid'放入隐藏的输入类型但仍然没有结果,也许其他代码有问题,我将它们粘贴在下面:
这是隐藏输入类型的新代码:
<form action='includes/edit_post.inc.php' method='post' enctype='multipart/form-data'>
<input type='hidden' value='<?php $pid ?>';
<div class='input-group'>
<label>Title</label>
<input placeholder='Title' name='title' type='text' value='<?php echo "$title";?>' autofocus-size='48'><br /> <br /></div>
<div class='input-group'>
<label>Content</label></div>
<div class='input-group'>
<textarea placeholder='Content' name='content' rows='20' cols='50'><?php echo"$content";?></textarea><br /></div>
<input name="update" type="submit" value="Update" class="btn">
</form>
这是 edit_post.inc.php 代码:
<?php
session_start();
require'dbh.inc.php';
if(!isset($_SESSION['userId'])){
header("Location: ../Login.php");
return;}
if(isset($_POST['update'])){
$title = strip_tags($_POST['title']);
$content = strip_tags($_POST['content']);
if(empty($title) || empty($content)) {
echo 'Please complete your post!';
return;
}
$title = mysqli_real_escape_string($conn, $title);
$content = mysqli_real_escape_string($conn, $content);
$date = date('l jS \of F Y h:i:s A');
$sql = "UPDATE posts SET title='$title', content='$content', date='$date' WHERE id=$pid";
mysqli_query($conn, $sql);
header("Location:../Activities.php");
}
?>
解决方案
您的表单路径有一个GET
参数,表单的方法是POST
. 如果您真的确定,您想通过GET
将表单方法更改为GET
. 如果要使用POST
,请将$pid
as 值放入 inputtype="hidden"
中。
<?php
$sql = "SELECT * FROM posts WHERE id = $pid LIMIT 1";
$res = mysqli_query($conn, $sql);
if(mysqli_num_rows($res) > 0){
while($row = mysqli_fetch_assoc($res)) {
$title = $row['title'];
$content = $row['content'];
}
}
?>
<form action="includes/edit_post.inc.php?pid=<?php echo $pid; ?>" method="GET" enctype="multipart/form-data">
<div class="input-group">
<label>Title</label>
<input placeholder="Title" name="title" type="text" value="<?php echo $title; ?>" autofocus-size="48"><br><br>
</div>
<div class="input-group">
<label>Content</label>
</div>
<div class="input-group">
<textarea placeholder="Content" name="content" rows="20" cols="50"><?php echo $content; ?></textarea>
<br>
</div>
<input name="update" type="submit" value="Update" class="btn">
</form>
推荐阅读
- node.js - 如何 npm-link 其他项目
- python - Python - 如何计算这个递归函数的时间复杂度?
- spring-boot - 在运行空手道测试之前运行位于另一个项目上的 Spring Boot 应用程序?
- javascript - ReactJS 循环遍历对象的状态数组并添加新字段
- wpf - 运行 Publish Vs2019 时缺少 project.assets.json
- javascript - 如何从本地存储中获取数据并设置状态反应
- css - React-tooltip 和 Next.js SSR 问题
- python - 如何在 for 循环中创建新的 Excel 工作表?
- vb.net - 在 vb.net 中自动生成 id 号
- regex - 是否可以在 Visual Studio Code 的占位符转换中添加变量?