0
    ComBox1(Allows Multiple Selection)             ComboBox2
    __________________________________             __________

    Fruits                                         
    Vegetables

我有一个组合框1(允许多项选择),其中包含以下项目:水果和蔬菜。

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

如果选择了“水果”,那么 ComboBox2 中的项目应该是:苹果、橙子、香蕉

    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 来实现此功能?

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

4

1 回答 1

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 填充第一个选择框,并根据发布的值生成数组,但为了展示如何填充选择框,我使用了一个静态数组。

于 2013-03-25T18:34:36.853 回答