如何根据其他组合框选中的值填充一个组合框

时间:2015-04-13 12:08:33

标签: php html

我创建了两个表"类别"和"子类别"。所以我需要做的是我组织了两个组合框,一个将从类别表中检索值并填充数据。但是,当从类别组合框中选择一个并填充子类别表中的所有值时,我需要填充其他组合框。

我非常感谢大家帮助我。

寻找好的答案。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可能希望使用AJAX和php来执行此操作....

首先,如果您没有jquery库,可以在http://jquery.com/download/获取它 这将使您能够使用AJAX jquery。

在你的html标题中:

    <script>

       $(document).ready(function() {
        $("#category").change(function() {

            var selectVal = $('#category :selected').text();


            $.ajax({                                      
              url: 'getsubcat.php',                         
              data: "groupid="+selectVal,                                                     
              type:'post',
              //dataType: 'json',                
              success: function(data)    
              { 
                $('#subcat').html('<option value="">'+data+'</option>');
              }
            });


        });

      });

    </script>

在html正文中 -

<?php
    include('conn.php');    
        $sql = "SELECT * FROM categories";
        $result3 = pg_query($con, $sql);
      ?>


<!-- first select list -->

Select a category: </td><td>
        <select id="category" name="category">
          <option value = ""></option>
        <?php
          while($row = pg_fetch_array($result3)) {
            echo '<option >'.$row[1].'</option>';
          }
        ?> 
        </select>



<?php

        $sql = "SELECT * FROM subcategories where cat = '$cat'";
        $result3 = pg_query($con, $sql);

      ?>

      Select a sub category: 
      <select id="subcat" name="subcat">
        <option value = ""></option>
        <?php
          while($row = pg_fetch_array($result3)) {
            echo '<option>'.$row[1].'</option>';
        }
      ?>


      </select>

最后,在你的php文件中 - getsubcat.php

<?php
    $category = $_POST['groupid'];



  include('conn.php');
  $sql="select * from subcat where cat_name = '$category'";
  $result = pg_query($con, $sql);

  while($row = pg_fetch_array($result)) { 

    echo '<option>'.$row[1].'</option>';


  }
  pg_query($sql) or die("Error: ".pg_last_error());
?>

所有这些都可以让你的选择列表动态依赖于第一个。

这里我使用postgresql作为数据库,但如果你使用的是像mysql这样的不同数据库,你应该可以更改连接字符串(conn.php)和表名,列。