我在数据库中有超过100行,它们来自不同的主题,如数据库课程或网络课程。我希望用户可以从他想要显示的主题中选择哪些问题。所以我在考虑使用一个选择框,但我不知道如何使用数据库查询处理选定的框。我怎么能这样做?
目前我的代码:
<div class = "container-fluid">
<div class = "container">
<?php
$query = "SELECT def_conteudo FROM conteudo WHERE nro_conteudo BETWEEN 1 AND 100";
$result = mysqli_query($con,$query);
while($fetch = mysqli_fetch_row($result)){
echo "<li>" . $fetch[0] . "</li>";
}
?>
</div>
</div>
问题是他只是在这里展示了不同科目的所有课程,但我想让用户选择他想要显示的问题。
示例:
如果用户想要仅显示数据库课程,他将通过选择框进行选择,并在屏幕上显示该特定主题的所有问题,而不是所有主题问题。
答案 0 :(得分:2)
HTML <select>
元素采用<option>
元素列表:
<select>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
该代码段将生成一个下拉列表,分别从选项1和选项2中选择,其值分别为1和2:https://jsfiddle.net/ux245gz3/
对于您的情况,您创建的每个<li>
元素都应该是<option>
块内的<select>
:
<div class="container-fluid">
<div class="container">
<select id="subject_selection">
<?php
$query = "SELECT def_conteudo FROM conteudo WHERE nro_conteudo BETWEEN 1 AND 100";
$result = mysqli_query($con,$query);
while($fetch = mysqli_fetch_row($result)){
echo "<option value=\"$fetch[0]\">" . $fetch[0] . "</option>";
}
?>
</select>
</div>
</div>
这将生成每个主题名称的列表,其中选择的值设置为显示的名称。 MDN article on <select>
会提供更多相关信息。
更新以回答完整的问题:
您需要更新查询以选择显示值和每个主题的ID(假设'conteudo'
表的主键名为'id'
:
SELECT id, def_conteudo FROM conteudo WHERE nro_conteudo BETWEEN 1 AND 100;
然后您可以使用id作为每个选项的值:
<?php
$query = "SELECT id, def_conteudo FROM conteudo WHERE nro_conteudo BETWEEN 1 AND 100";
$result = mysqli_query($con, $query);
while ($fetch = mysqli_fetch_row($result)) {
echo "<option value=\"$fetch[0]\">$fetch[1]</option>";
}
?>
然后,一旦用户从下拉列表中选择一个选项,您就可以对该页面执行GET
,并通过表单提交的主题ID查询与所选主题具有正确关系的问题或课程
SELECT * FROM <licao/pergunta> WHERE contuedo_id = $_GET["id"];
除了友好之外,此时你应该考虑使用类似PHP's PDO library的东西来自动处理动态生成的SQL语句的清理。