element-ui的el-select把读取到的数据放入下拉菜单

本文介绍了如何在Vue.js应用中从数据库获取数据并填充到下拉框(el-select)中,用于选择教师所属的教学机构。通过v-for指令遍历获取的orgOptions,展示orgname作为选项标签,存储orgid作为实际值。页面加载时调用getOrg()方法获取数据,实现数据绑定和操作功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的

想从数据库中把查询到的数据放到下拉框里变成选项,再进行增删改查

用例示范

表单部分:

<el-select v-model="form.tecorgid" placeholder="请选择教师所属教学机构">
          <el-option
            v-for="item in orgOptions"
            :key="item.orgid"
            :label="item.orgname"
            :value="item.orgid"/>
</el-select>

js部分:

export default {

    data() {
      return {
        orgOptions:[]
      }
    },
    mounted() {
      this.getOrg();
    },
    methods:{
      getOrg(){
        getOrgList().then((res)=>{
          //console.log(res)
          this.orgOptions=res.data.datalist;
        })
      }

    },
  }

使用逻辑

首先,进入页面时,调用getOrg()方法去数据库里读取所有的org,并放入orgOptions中。然后在option标签中遍历orgOptions,显示出来的label是orgname,实际上的值value是orgid。最后存储的是字段tecorgid

简要说明

value为select绑定的值

label 为select选中框内显示的值

若不设置 label则显示的值为select绑定的值,即value

### 实现 Element UI 的 `el-select` 级联多选并获取省市级数据 在使用 Element UI 的 `el-select` 组件时,可以通过监听第一个选择框的变化来动态更新第二个选择框的数据列表。以下是实现省市联动的具体方式以及如何获取选中的值。 #### HTML 部分 ```html <template> <div> <!-- 省份选择 --> <el-select v-model="province" placeholder="请选择省份" @change="handleProvinceChange"> <el-option v-for="item in provinceOptions" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> <!-- 城市选择 --> <el-select v-model="city" multiple placeholder="请选择城市"> <el-option v-for="item in cityOptions" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> </div> </template> ``` #### JavaScript 部分 ```javascript <script> export default { data() { return { province: '', // 当前选中的省份 city: [], // 当前选中的城市(支持多选) provinceOptions: [ { value: 'zhejiang', label: '浙江省' }, { value: 'shanghai', label: '上海市' } ], // 所有可选项的省份 allCityOptions: { // 各个省份对应的城市集合 zhejiang: [ { value: 'hangzhou', label: '杭州市' }, { value: 'ningbo', label: '宁波市' } ], shanghai: [ { value: 'huangpu', label: '黄浦区' }, { value: 'jingan', label: '静安区' } ] }, cityOptions: [] // 动态显示的城市选项 }; }, methods: { handleProvinceChange(provinceValue) { this.city = []; // 清空已选城市 this.cityOptions = this.allCityOptions[provinceValue]; // 更新城市选项 } } }; </script> ``` 上述代码实现了以下功能: - 使用两个 `el-select` 分别表示省份和城市的下拉菜单- 初始状态下,只有省份的选择项可用;当用户选择了某个省份后,会触发 `@change` 方法,从而动态加载该省份下的城市列表[^1]。 - 支持城市多选,并通过绑定数组变量 `city` 来存储多个选中的城市 ID 或名称[^2]。 #### 如何获取选中值? 对于上面的例子来说,可以分别从 `province` 和 `city` 变量中读取当前选中的省份和城市信息。如果需要同时获取它们对应的标签名,则可以在事件回调函数中处理: ```javascript methods: { getSelectedValues() { const selectedCitiesLabels = this.city.map(cityId => { const matchedOption = this.cityOptions.find(option => option.value === cityId); return matchedOption ? matchedOption.label : null; }); console.log('选中的省份:', this.province); // 输出省份ID console.log('选中的城市IDs:', this.city); // 输出城市IDs console.log('选中的城市Label:', selectedCitiesLabels); // 输出城市Label } } ``` 以上逻辑能够帮助开发者轻松提取用户的最终选择结果[^3]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TDSSS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值