Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在父类别中选择选项时显示子类别列表_Php_Jquery_Mysql - Fatal编程技术网

Php 在父类别中选择选项时显示子类别列表

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

我有一个标准或类别的列表,当一个人选择标准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();
    $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; }