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

标签 php mysql html

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

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

我的数据库中有 4 行:行 [0] 是标题,行 [1] 是消息,行 [2] 是时间戳,行 [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>

最佳答案

我自己已经设法找到了答案。这可能不是最理想的方法,但对于其他可能陷入困境的人来说 - 这是我的代码:

我现在遇到的唯一问题是弄清楚如何保持我的选项被选中。

    <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>

关于php - 在 PHP/MySQL 中使用下拉菜单预填充表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40326012/

相关文章:

php - 处理共享主机上的 MySql 'Too many connections' 错误

php - 如何配置 Apache/PHP 以接受查询字符串中的斜杠?

php - 在 PHP 中查找两个大数组之间差异的最佳方法

mysql - 使用自连接和子查询优化 UPDATE SQL 查询

父级 'div' 中的 CSS 自动宽度子级 'div'

html - Css 访问 div id 内的 img id

php - 检查 `INSERT SELECT`是否实际插入行

php - 编辑mysql数据库中的一行

java - MySql 中的 Row_Number() 结果值为 Double,但在 IBM Data Studio 中结果为 Int

html - 在移动设备的导航栏中调整 Logo 大小