2012-07-03 74 views
0

我找不到一个很好的方式来定义这个,所以我希望有人可以帮助。如何获得一个选择框来控制另一个选择框

我有两个选择框(分区和子分区)。当用户进来时,他们只能看到分区选择框。当他们选择一个分区时,分区选择框将出现在其下方,并仅显示该分区的项目。很像这样。

<select name="divisions"> 
<option value="1">Div1</option> 
<option value="2">Div2</option> 
</select> 

<select name="subdivisions"> 
<option value="1" division="1">Sub1</option> 
<option value="2" division="1">Sub2</option> 
<option value="3" division="2">Sub3</option> 
<option value="4" division="2">Sub3</option> 
</select> 

所以,当我选择1区,我应该看到第二个选择框弹出,并只显示Sub1的和分公司2如在选择框中的选项。当我选择分区2时,第二个选择框应该只显示Sub3和Sub4。我想知道如何使用PHP和JavaScript轻松完成此操作。

我使用codeigniter来编码这个页面,我已经用我需要构建选择框的数据发送了我的视图Divisions和SubDivisions对象。我不知道是否必须将这些对象转换为JavaScript,但是我希望尽可能避免这种情况。这听起来像将变得太复杂了,我的对象转换为JavaScript数组,然后填充选择框。

+0

也许一个愚蠢的建议,但你有没有尝试过一个简单的'if()'语句来检查某个复选框是否被选中? – poepje

+0

你有什么尝试?这是一个非常普遍的问题,因此,我无法想象你在寻找资源时会遇到很多麻烦。 – Utkanos

+0

第二个选择中的数据是否取决于第一个选择的值?因此,如果我在第一个方框中选择选项1,第二个方框是否会向我展示与选择选项2不同的选项集? – DaveRandom

回答

1

所以,你问如何做到这一点?抱歉,我的帖子中没有看到任何问题。如果您尝试创建一个条件,当选中一个复选框时,其他条件变为可用,您可以执行一些操作。我最喜欢的是使用jQuery。

$(document).ready(function(){ 

$('#divthatholdssubboxes').hide() 

$('#checkbox').click(function(){ 
     $('#divthatholdssubboxes').slideToggle('slow'); 
    }); 

    }); 

我通常把我所有的复选框放在一个div中,以容纳所有东西。这是一个很酷的方法,因为它给你的网站一些动态的图形界面,但仍然可以让你保持你的程序逻辑。

+0

所以你说,而不是有一个选择框保存所有的辅助选项(在我的情况下的子分区),你为每个细分创建一个新的选择框,只隐藏或者显示你当时需要的选择框?我只是想了解一切,抱歉。 – CrystalBlue

+0

不,它仍然是一个主复选框,它总是可见的,并在div中显示第二个复选框,“divthatholdssubboxes”,它将首先隐藏起来,并在您检查主框时切换 –

0

对于第一部分(显示/隐藏部门),你需要用javascript来做,我会用jQuery。

对于第二部分使用CI表单助手设置值,您需要一些逻辑来隐藏细分

相关问题