我正在用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"];
当我使用它时,它会打印出正确的项目。