javascript 更新联动下拉列表框

本文介绍了一种在网页中实现三个下拉列表框联动的方法。当选择不同公司时,使用部门和管理部门的内容会动态更新。通过PHP后端获取部门数据,并以JSON格式传递到前端,利用jQuery监听公司选择的变化来更新部门选项。

在界面中有3个下拉列表框需要联动。

选择不同的公司后,使用部门和管理部门的内容也要进行更新。

数据来自2张表。company和department。


思路:

Department模块:

此方法输出一个部门下拉列表框:

class DepartmentModel extends Model {

    public function selectdepartment($fiedname,$current = 0,$company_id=0) {

        $res = $this->where('company_id='.$company_id)->select(); //二维数组
        $op = '<select id="'.$fiedname.'" name = "'.$fiedname.'">';
        
        $op.='<option value="0">---请选择部门---</option>';
        foreach ($res as $key => $value) {
            if ($current == $value['department_id']) {
                $op.='<option selected="selected" value = "' . $value[department_id] . '">' . $value[description] . '</option>';
            } else {
                $op.='<option value = "' . $value[department_id] . '">' . $value[description] . '</option>';
            }
        }
        $op.='</select>';
        return $op;
    }

}


控制器方法中将department的数据放到一个变量中,变量要保存成json格式。

//使用部门下拉列表框
            $department = new \Model\DepartmentModel();
            $this->assign('department',  json_encode($department->select())); 


页面输出:

                    <tr><td>公司</td><td><{$selectcompany}></td></tr>
                    <tr><td>使用部门</td><td><{$userdepartment}></td></tr>
                    <tr><td>放置区域</td><td><{$selectfactoryarea}></td></tr>
                    <tr><td>管理部门</td><td><{$mandepartment}></td></tr>

动态改变下拉列表框内容:

//接收部门表的数据
            var department = <{$department}>;
            //选择不同的公司后,相应的部门下拉框也要更新
            $(function () {
                $('#company_id').change('change', function () {
                    var company_id = this.value;
                    var opstr = "<option value=0>--请选择部门--</option>";
                    for (var i = 0; i < department.length; i++) {
                        //man_department_id
                        if(company_id===department[i].company_id){
                            opstr += "<option value=" + department[i].company_id + ">" + department[i].description + "</option>";
                        }
                    }
                    //alert(opstr);
                    $('#use_department_id').html(opstr);
                    $('#man_department_id').html(opstr);
                });


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值