我在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;
如果将其发布到 add_question.php ,则$ _POST [&#39; topic_name&#39;]没有值。我觉得我的表格有问题,虽然我看不清楚。任何帮助都会很棒。
谢谢!
答案 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"];
我使用它时会打印出正确的项目。