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来实现此功能?
实际上,我从数据库中获取两个组合框中的项目。
答案 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填充第一个选择框,并根据发布的值生成数组,但为了显示如何填充选择框,我使用了一个静态数组。