自动填充两个下拉菜单

时间:2012-08-30 08:31:20

标签: php drop-down-menu

有两个下拉菜单, A和B.

A中的值是: - 汽车,自行车,飞机 B中的值是(当选择汽车时): - 法拉利,梅赛德斯 当选择自行车时: - 杜卡迪,哈利 选择飞机时: - MIG,Concorde

同样在选择了Drop菜单中的Value后,将更新一个价格的文本框,我需要这是一个重复的过程。我该如何实现它?我是PHP的新手。

1 个答案:

答案 0 :(得分:0)

首先,我要感谢jogesh_p的帮助。

我终于设法自动填充下拉菜单,并使第二个下拉菜单取决于第一个下拉菜单。

正如jogesh在Dynamic select box with php and jQuery

提到他的博客

确实帮了很多忙。

但是,我将发布我使用的代码,因为论坛倾向于在Google中占据更高的结果,并且让它更容易找到像我这样的其他新的PHP程序员。

编码分两页完成:

  1. attempt.php(这是主页)
  2. level.php(当第一个下拉菜单的值更改时调用此页面)
  3. 已经使用了jQuery和PHP。

    attempt.php

    <?php
    //connect to the database
    $con = mysql_connect("localhost","root","12345") or die("error ".mysql_error());
    
    //connect to the trav table
    mysql_select_db("trav",$con) or die("error ".mysql_error());
    ?>
    
    <html>
    <head>    
       <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
       <script>
       $(function()
       {
    
            $(window).load(function()
            {
                $('#building').change(function()
                {
                    var parentValue = $(this).val();
    
    
                    // Determine the selected Value
                    if( parentValue.length != "" )
                    {
                        $.ajax(
                        {
                            url: 'level.php',
                            data: {parent: parentValue},
                            success: function(data)
                            {
                                $('#level').html(data);
                            }
                        });
                    }
                    else
                    {
                        $('#level').html('<option value="">Please Select</option>');
                    }
                });
            });
        });
        </script>
    </head>
    
    <body>
    <form method="post" action="<?php echo $PHP_SELF;?>">
    
        <table cellpadding="6" cellspacing="1">
            <tr>
                <td>
                    <label>Select Building : </label>
                </td>
                <td>
                    <select id="building">
                        <option value="">Please Select</option>
                        <?php
                            $query = "select * from build_list";
                            $result = mysql_query($query) or die('Error'.mysql_error());
    
                            while( $row = mysql_fetch_assoc($result) )
                            {
                                echo '<option value="'. $row['building'] .'">' . ucwords($row['building']) . '</option>';
                            }
                        ?>
                    </select>
                </td>
                <td>
                    <label>Select Level : </label>
                </td>
                <td>
                    <select id="level">
                            <option value="">Please Select</option>
                    </select>
                </td>
            </tr>   
        </table></center>
    </form>
    </body>
    </html>
    

    level.php

    <?php
    //connect to the database
    $con = mysql_connect("localhost","root","12345") or die("error ".mysql_error());
    
    //connect to the trav table
    mysql_select_db("trav",$con) or die("error ".mysql_error());
    
    $building = mysql_real_escape_string($_GET['parent']);
    
    $query = "select * from ";
    $query = $query . $building;
    $query = $query . ";";
    $result = mysql_query($query) or die('Error in Child Table!');
    
    echo '<option value="">Please Select</option>';
    while( $row = mysql_fetch_assoc($result) )
    {
        echo '<option value="'. $row['lvl'] .'">'.$row['lvl'].'</option>';
    }
    ?>
    

    请注意,以上代码已在jogesh的博客中使用。上面已经提到了这个链接。

    希望它可以帮助像我这样的新手php的其他php程序员,但是喜欢尝试不同的东西。