首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组合框(HTML、PHP)

问组合框(HTML、PHP)
EN

Stack Overflow用户
提问于 2012-05-02 18:06:46
回答 2查看 238关注 0票数 1

我需要关于一个组合框依赖于另一个组合框的帮助。

我的表单中有两个组合域,一个是学校,另一个是班级。每所学校都有特定的班级,并且都存储在数据库中。我必须从数据库(学校表)中选择学校的值,选择它后,第二个组合框将显示与特定学校相关的课程。

选择这些值后,我也必须将它们存储在数据库中。

EN

回答 2

Stack Overflow用户

发布于 2012-05-02 18:17:27

有两种方法可以解决这个问题。

使用javascript的

  1. :

代码语言:javascript
复制
1. You can use Javascript + Ajax to dynamicly get the second box's datasource, create an array and set the combobox's items.
2. You can load the options that you want in array (using php when the page is created)

在这两种方法中,第一个组合框中的每个选项都有一个数组(两个二维数组-第一个索引用于第一个组合框中的选项,第二个是将添加到第二个组合框中的项的索引)。然后你可以使用

document.getElementById("DropDownList").options.add(opt);

若要添加第二个组合框中的项,请在第一个组合框的值更改时执行此操作。

2.每次第一个组合框的值发生变化时,您都可以为表单调用submit(),然后使用php填充第二个组合框(取决于第一个组合框的值)。

票数 0
EN

Stack Overflow用户

发布于 2012-05-02 21:06:52

注意:我假设数据库配置是正确的,因为您没有提供数据库的详细信息。

表1:学校

字段类型详细信息

學校int int(11)主键

校名varchar(50)

详细信息varchar(50)

表2:类

字段类型详细信息

class_id int(11)主键

类名varchar(50)

學生11 int(11)

在上述db表中添加示例数据。设置数据库配置,如下所示

$sConn =mysql_connect(“本地主机”,“根”,"sajeda45")

本地主机是主机名根目录是dbusername sajeda45是dbpassword imagedb是数据库名

在下面的脚本中设置上面的数据库参数,你就会得到你想要的结果

代码语言:javascript
复制
<?php

        $sConn = mysql_connect("localhost","root","sajeda45")
        or die("Couldn't connect to database server");
        $dConn = mysql_select_db("imagedb", $sConn);

        function getSchollList()
        {
            $schoolList = array();

            $result = mysql_query("select schoolid,schoolname from school") or die("Couldn't school list");

            while($row=mysql_fetch_array($result))
            {
                    $id=$row['schoolid'];
                    $schoolList["".$id.""]  =$row['schoolname'];    
            }

            return $schoolList;
        }

        function getClassList($schoolId)
        {
            $classList = array();

            $result = mysql_query("select classname from class  where schoolid=$schoolId") or die("Couldn't class list");

            while($row=mysql_fetch_array($result))
            {
                    $classList[]    =$row['classname']; 
            }
            return  $classList;
        }
    ?>

<html>
<title>Test Example</title> 
<head>
    <script type="text/javascript">
            function redirectForClass(schoolName)
            {
                    window.location="stackoverflow1.php?school="+schoolName;
            }
    </script>       
</head>
<body>
    <?php
        $schoolList = getSchollList();
        $schoolId = isset($_GET['school']) ? $_GET['school']:0;
        $classList =  getClassList($schoolId); 
    ?>
    <form method="post" action="handler.php">

            School:
            <select name="school" onchange="redirectForClass(this.value);">
                <option value="0">--select school--</option>
                <?php
                    foreach($schoolList as $school_Id => $school){
                ?>      
                    <option value="<?php echo $school_Id; ?>" <?php if($school_Id==$schoolId) echo "SELECTED"; ?>><?php echo $school; ?></option>
                <?php   
                }
                ?>  
                </select>
                <br/><br/>
                    Class:
            <select name="class" >
                <option value="">--select Class--</option>
                <?php
                    foreach($classList as $class){
                ?>      
                    <option value="<?php echo $class; ?>"><?php echo $class; ?></option>
                <?php   
                }
                ?>  
                </select>
                <br/><br/>
                <input type="submit" value="submit" />
    </form> 

</body>
</html> 
<?php

?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10411618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档