通过HTML表单将下拉菜单的值发布到PHP页面


Posting the value of a drop down menu to a PHP page via a HTML form

我正在用HTML创建一个表单,它将用户提出的问题以及该问题应该出现在下面的主题发送到PHP页面。主题名称是使用PHP从MySQL数据库中提取的。

我想把下拉菜单的值(用户选择的主题)和HTML表单一起发布到PHP页面。这是我的表单代码:

<form action="add_question.php" method="post">
  Question:<input name="question_text" type="question"><br>
  <select name="topic_name">
    <option>Topic</option>
      <?php
        // Get each topic name from the database
        include "connect_database.php";
        $topicQuery = "SELECT topic_name FROM topics
                       ORDER BY topic_name";
        $result = $conn->query($topicQuery);
        if ($result->num_rows > 0)
        {
          while ($row = $result->fetch_assoc())
          {
            // Make topic an option in drop down box
            echo '<option>' . $row["topic_name"] . '</option>';
          }
        }
        // Close connection
        mysqli_close($conn);
      ?>
  </select><br>
  <button type="submit">Submit</button>
</form>

当它发布到add_question.php时,$_POST['topic_name']没有值。我觉得我的状态有问题,尽管我看不出是什么。任何帮助都会很棒。

谢谢!

您必须为您的选项分配一个值,如:

 echo '<option value='.$row["topic_id"].'>' . $row["topic_name"] . '</option>';

注意:topic_id是一个值的示例,您可以使用任何其他值

您需要为所有选项添加值属性

<option value="some value">some value</option>
<form action="add_question.php" method="post">
  Question:<input name="question_text" type="question"><br>
  <select name="topic_name">
    <option>Topic</option>
      <?php
        // Get each topic name from the database
        include "connect_database.php";
        $topicQuery = "SELECT topic_name FROM topics
                       ORDER BY topic_name";
        $result = $conn->query($topicQuery);
        if ($result->num_rows > 0)
        {
          while ($row = $result->fetch_assoc())
          { ?>
           <option value="<?=$row["topic_name"]?>"><?=$row["topic_name"]?></option>
            <?php
          }
        }
        // Close connection
        mysqli_close($conn);
      ?>
  </select><br>
  <button type="submit">Submit</button>
</form>

尝试以下操作:

<form action="add_question.php" method="POST">
    Question: <input name="question_text" type="question"><br/>
    <select name="topic_name">
        <option>Topic 1</option>
        <option>Topic 2</option>
        <option>Topic 3</option>
    </select>
    <input type="submit" value="submit">
</form>

请注意,您不需要如上所述的值,当然,您将使用数据库来填充选项。注意输入type="submit"。

然后在add_question.php页面上执行以下操作:

echo $_POST["question_text"];
echo "<br/>";
echo $_POST["topic_name"];

当我使用它时,它会打印出正确的项目。