多选组合框

时间:2013-03-25 18:10:11

标签: php

    ComBox1(Allows Multiple Selection)             ComboBox2
    __________________________________             __________

    Fruits                                         
    Vegetables

我有一个combobox1(允许多项选择),其中包含以下项目:Fruits&蔬菜。

ComboBox2中的项目将根据基于ComboBox1的选择进行填充。

如果选择“Fruits”,则ComboBox2中的项目应为:apple,orange,banana

    ComBox1(Allows Multiple Selection)             ComboBox2
    __________________________________             __________

    Fruits  (selected)                             Apple
    Vegetables                                     Orange
                                                   Banana

如果既有水果和蔬菜,那么ComboBox2的项目应该是:苹果,橘子,香蕉,萝卜,生菜。

    ComBox1(Allows Multiple Selection)             ComboBox2
    __________________________________             __________

    Fruits  (selected)                             Apple
    Vegetables (selected)                          Orange
                                                   Banana
                                                   Radish
                                                   Lettuce

我需要使用PHP来做到这一点。任何人都可以建议如何使用Jquery或ajax或javascript来实现此功能?

实际上,我从数据库中获取两个组合框中的项目。

1 个答案:

答案 0 :(得分:2)

使用jquery,包含jquery库

<script type='text/javascript' src="http://code.jquery.com/jquery.js"></script>

然后使用以下脚本:

<script type='text/javascript'>
 $(document).ready(function(){
  $('#typeSelect').change(function(){
   $.ajax({
    url:"data.php",
    data: { type: $('#typeSelect').val() },
    type: "POST",
   }).success(function(data){
    $("#itemSelect").html(data);
   });
  });
 });
</script>

使用此表格:

<form>
 <select id="typeSelect" multiple="multiple">
  <option value="fruit">Fruit</option>
  <option value="vege">Vegetables</option>
 </select>
 <select id="itemSelect" multiple="multiple">

 </select>
</form>

在data.php中,你会把:

<?php
$a = array(
 "fruit" => array(
  "apples" => "Apples",
  "bananas" => "Bananas", 
  "pears" => "Pears"
 ),
 "vege" => array(
  "toma" => "Tomatoes", 
  "cucu" => "Cucumber", 
  "rad" => "Radish"
 )
);

foreach($_POST['type'] as $type){
 foreach($a[$type] as $key => $val){
  echo "<option val='{$key}'>{$val}</option>";
 }
}

当然你用PHP填充第一个选择框,并根据发布的值生成数组,但为了显示如何填充选择框,我使用了一个静态数组。