Php 在父类别中选择选项时显示子类别列表
我有一个标准或类别的列表,当一个人选择标准9或10时,我想显示另一个下拉列表,他/她可以在其中选择特定的组 下面是第一个列表类的代码Php 在父类别中选择选项时显示子类别列表,php,jquery,mysql,Php,Jquery,Mysql,我有一个标准或类别的列表,当一个人选择标准9或10时,我想显示另一个下拉列表,他/她可以在其中选择特定的组 下面是第一个列表类的代码 <?php /*Getting the data to show in drop down list*/ $sql = $DB_con->prepare( "SELECT DISTINCT cls_id, cls_name FROM class ORDER BY cls_id ASC" ); $sql->execute()
<?php
/*Getting the data to show in drop down list*/
$sql = $DB_con->prepare( "SELECT DISTINCT cls_id, cls_name FROM class ORDER BY cls_id ASC" );
$sql->execute();
$results = $sql->fetchAll();
?>
现在从第一个列表中选择特定的类,我想显示下一个包含组的列表。我有代码可以显示列表中的项目,但不知道如何显示或隐藏第二个列表
我在第一个列表中有6个以上的项目,下一个列表中出现的组仅用于第一个列表中的2个项目。如您所见,我已经使用foreach填充了第一个列表,并计划使用相同的代码填充子类别列表。我只是不知道如何选择这两个项目子类别列表。除非选择框中有许多选项,否则我只需要用PHP输出所有组选择框,然后用JavaScript隐藏和显示它们 对于PHP,只需循环遍历所有类,并为每个类添加一个包含组的selectbox。如果您有类A和类B,则希望HTML如下所示:
<select name="groups-A" data-class="A" class="group-select">
<option>Option 1</option>
<option>...</option>
</select>
<select name="groups-B" data-class="B" class="group-select">
<option>...</option>
</select>
您可能希望为class selectbox指定一个ID,以便可以使用class而不是select[name=class]。此外,您可能希望使用此CSS
.group-select { display: none; }
避免在JS运行之前显示选择框
免责声明:我没有测试过这段代码。从学习jquery开始。我也尝试过jquery,但在互联网上可用的情况下,我不知道如何获得特定或选定的类,并基于此显示另一个列表。所有示例都具有固定的给定值。一个选项是输出所有不同的组选择框,然后最好将JS与jQuery一起使用,以显示相关的组选择框并隐藏其他组选择框。另一种选择是只使用一个组selecbox,然后用AJAX调用填充它。这似乎是非常可行的解决方案。让我来试试,看看进展如何。我会在适当的时候更新。我已经尝试过使用这个-请看我编辑的帖子。你能把输出的HTML而不是PHP和JS放在一个文件夹中吗?从那里,我应该能够为您追踪任何错误。代码工作正常。您刚刚在末尾留下了一个额外的},这导致了一个语法错误。见工作演示。未来的一个技巧是,当某些东西不起作用时,总是检查控制台日志。如果你这样做了,它会告诉你有语法错误,最多需要五分钟来修复。此外,我会删除你问题中的第二个编辑,因为它不会添加任何内容,只会让未来的访问者感到困惑。
//Run this code when the DOM is ready.
$(function() {
//Execute the function when the select named class changes.
$("select[name=class]").change(function() {
//Hide all of the selectboxes.
$("select.group-select").hide();
//Show the selected one.
var selector = "select[data-class=" + $(this).val() + "]";
$(selector).show();
}
//Trigger the change event so you show the right one to begin with.
$("select[name=class]").trigger("change");
});
.group-select { display: none; }