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

时间:2016-03-30 15:51:13

标签: php html mysql forms

我在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>
&#13;
&#13;
&#13;

如果将其发布到 add_question.php ,则$ _POST [&#39; topic_name&#39;]没有值。我觉得我的表格有问题,虽然我看不清楚。任何帮助都会很棒。

谢谢!

4 个答案:

答案 0 :(得分:4)

您必须为您的选项指定一个值,例如:

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

注意: topic_id您可以使用任何其他值的值的例外

答案 1 :(得分:0)

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

<option value="some value">some value</option>

答案 2 :(得分:0)

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

答案 3 :(得分:0)

尝试以下方法:

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

请注意,您不需要上面提到的值,当然您将使用数据库来填充您的选项。并注意输入类型=“提交”。

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

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

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