首页 > 解决方案 > 我的 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");



}

?>

标签: phphtmlsqldatabaseecho

解决方案


您的表单路径有一个GET参数,表单的方法是POST. 如果您真的确定,您想通过GET将表单方法更改为GET. 如果要使用POST,请将$pidas 值放入 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>

推荐阅读