在PHP / MySQL中使用下拉菜单预填充表单?

时间:2016-10-30 04:28:30

标签: php mysql html5

我正在创建一个将用作博客的简单CRUD应用程序。对于编辑页面,我想要一个包含每个帖子的博客标题的下拉菜单。选择选项/博客文章时,我希望它填充“标题”和“消息”字段,然后可以对其进行编辑并保存到数据库中。

我得到它来检索博客文章的标题,但我很难让它填充“标题”和“消息”字段,以便在选择该选项时可以对其进行编辑。

我的数据库中有4行:row [0]是标题,row [1]是消息,row [2]是时间戳,row [3]是ID。

谢谢你们。我很感激。

    <form action="edit.php" id="myform" method="post" autocomplete=off>
      <input type="hidden" name="action" value="show">

      <p><label>Entry:</label><select name="blog">
      <?php

          $result = mysqli_query($con, "SELECT * FROM blog");
          while ($row = mysqli_fetch_array($result)) {
              $chosen = $row['bid'];
          }

          if (isset($_GET['blog'])) {
                $id = $_GET['blog'];
                $result = mysqli_query($con, "SELECT * FROM blog WHERE bid='$id'");
                $row = mysqli_fetch_array($result);
          }

          $result = mysqli_query($con, "SELECT * FROM blog");
          while ($row = mysqli_fetch_array($result)) {
              $id = $row['bid'];
              $title = $row['title'];

              $selected = '';
              if ($id == $chosen) {
                  $selected = "selected='selected'";
              }

              echo "<option value='$id' $selected>$title</option>\n";
          }

      ?>
    </select></p>

  <p><label>Title:</label> <input type="text" id="newtitle" name="newtitle" value="<?php echo $row[0]; ?>"></p>
  <p><label>Message:</label> <input type="text" id="newmessage" name="newmessage" value="<?php echo $row[1]; ?>"></p>
  <p><input type="hidden" name="id" value="<?php echo $row[3]; ?>"></p>

  <br><p><input type="submit" name="submit" value="Submit"></p>
</form>

1 个答案:

答案 0 :(得分:0)

我已经设法自己找出了答案。它可能不是最理想的做法,但对于其他可能坚持这一点的人来说 - 这是我的代码:

我现在唯一的问题是弄清楚如何选择我的选项。

    <form action="edit.php" id="myform" method="post" autocomplete=off>
      <input type="hidden" name="action" value="show">

      <p><label>Entry:</label><select name="blog" onchange="window.location.href = blog.options[selectedIndex].value">
          <option selected disabled>Select One</option>
      <?php
          $result = mysqli_query($con, "SELECT * FROM blog");
          while ($row = mysqli_fetch_array($result)) {
              $id = $row['bid'];
              $title = $row['title'];

              echo "<option value='edit.php?edit=$row[bid]'>$title</option>\n";
          }

          if (isset($_GET['edit'])) {
                $id = $_GET['edit'];
                $result = mysqli_query($con, "SELECT * FROM blog WHERE bid='$id'");
                $row = mysqli_fetch_array($result);
          }

      ?>
    </select></p>

  <p><label>Title:</label> <input type="text" id="newtitle" name="newtitle" value="<?php echo $row[0]; ?>"></p>
  <p><label>Message:</label> <input type="text" id="newmessage" name="newmessage" value="<?php echo $row[1]; ?>"></p>
  <p><input type="hidden" name="id" value="<?php echo $row[3]; ?>"></p>

  <br><p><input type="submit" name="submit" value="Submit"></p>
</form>