Layui中在通过请求获取数据显示到select下拉框并通过一个下拉框的数据改变另一个下拉框的值

页面展示样式为:

在下面的是第一个下拉框的js代码为:

// 获取所有课程

    layui.use(['form'], function () {

    var $ = layui.jquery,

        form = layui.form;

    // 发起GET请求获取数据

    $.ajax({

        url: 'https://localhost:44301/api/Course/GetAllCourse',

        type: 'GET',

        success: function (data) {

            // 获取成功后将数据填充到<select>标签中

            var selectElem = $('#questionTypeSelect1');

            // 清空原有选项

            selectElem.empty();

            // 添加新的选项(data.data是each的对象,this.cName是要展示的数据的cName属性值 

            $.each(data.data, function (index,item) {

                selectElem.append('<option value="' + this.cName + '">' + this.cName + '</option>');

            });

            // 重新渲染select

            form.render('select');

        },

        error: function (xhr, status, error) {

            console.error('发生错误:', error);

        }

    }

});

这是第二个下拉框的js代码:(缺陷是只有点击第一个下拉框的值才能显示出第二个下拉框的值,这样会导致第一个值不能直接获取)

 //根据课程下拉列表选项对知识点同步更新

    layui.use(['jquery', 'form'], function() {

    var $ = layui.jquery;

    var form = layui.form;

    // 初始化学科下拉列表

    var select1 = $('#questionTypeSelect1');

    // 这里你需要自己填充学科下拉列表的选项,可以通过Ajax请求获取数据并填充

    // 示例中使用了一个静态的选项作为示例

    form.render(); // 渲染layui表单

    // 监听questionTypeSelect1下拉列表的change事件

    form.on('select(onClickSelected)', function(data) {

        var c = data.value; // 获取选中的学科

        //encodeURIComponent可以解决字符不可识别的问题

        var course= encodeURIComponent(c);

        // 发起GET请求

        $.ajax({

        type: 'GET',

        url: 'https://localhost:44301/api/KnowPoint/GetKpByCourse',

        data: { cname: course },

        dataType: 'json',

        success: function(options) {

            var select2 = $('#questionTypeSelect3');

            select2.empty(); // 清空原有选项

            // 添加新的选项

            $.each(options.data, function(index, option) {

            var optionElem = $('<option>').val(option.kPointName).text(option.kPointName);

            select2.append(optionElem);

            });

            form.render(); // 重新渲染layui表单

        },

        error: function() {

            console.log('请求失败');

        }

        });

    });

    });

可以通过直接赋值进行数据请求:

 //获取初始的知识点值

    layui.use(['form'], function () {

    var $ = layui.jquery,

        form = layui.form;

   

    var course="CSharp";

    // 发起GET请求获取数据

     // 发起GET请求

     $.ajax({

      type: 'GET',

      url: 'https://localhost:44301/api/KnowPoint/GetKpByCourse',

      data: { cname: course },

      dataType: 'json',

      success: function(options) {

        var select2 = $('#questionTypeSelect3');

        select2.empty(); // 清空原有选项

        // 添加新的选项

        $.each(options.data, function(index, option) {

          var optionElem = $('<option>').val(option.kPointName).text(option.kPointName);

          select2.append(optionElem);

        });

        form.render(); // 重新渲染layui表单

      },

      error: function() {

        console.log('请求失败');

      }

    });

});

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过监听第一个下拉框改变事件,然后在事件处理函数根据选择的动态改变第二个下拉框的选项。具体的实现方式如下: 1. 在 Vue 的模板定义两个下拉框,并绑定对应的数据和事件处理函数: ```html <template> <div> <select v-model="selectedOption1" @change="changeOption1"> <option value="">请选择</option> <option v-for="option in options1" :value="option">{{ option }}</option> </select> <select v-model="selectedOption2"> <option value="">请选择</option> <option v-for="option in options2" :value="option">{{ option }}</option> </select> </div> </template> ``` 2. 在 Vue 的 `data` 属性定义两个下拉框的选项和当前选: ```javascript <script> export default { data() { return { selectedOption1: '', selectedOption2: '', options1: ['选项1', '选项2', '选项3'], options2: [], }; }, // ... } </script> ``` 3. 在 Vue 的方法定义第一个下拉框改变事件处理函数,根据选择的动态改变第二个下拉框的选项: ```javascript methods: { changeOption1() { if (this.selectedOption1 === '选项1') { this.options2 = ['选项1-1', '选项1-2', '选项1-3']; } else if (this.selectedOption1 === '选项2') { this.options2 = ['选项2-1', '选项2-2', '选项2-3']; } else if (this.selectedOption1 === '选项3') { this.options2 = ['选项3-1', '选项3-2', '选项3-3']; } else { this.options2 = []; } this.selectedOption2 = ''; // 重置第二个下拉框的选 }, // ... } ``` 这样,当第一个下拉框的选项发生改变时,会触发 `changeOption1` 方法,根据选择的动态改变第二个下拉框的选项,并重置第二个下拉框的选

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值