layui Ajax请求给下拉框赋值

本文介绍了一个用于管理排课申请的网页应用,该应用利用HTML、CSS和JavaScript等前端技术实现,支持按学校名称、学期及状态进行筛选,并提供查看、推送及下载等功能。

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



<!DOCTYPE html>
<html>
<head>
<title>排课设置</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="renderer" content="webkit">
<link rel="stylesheet" href="/vendor/layui/css/layui.css" media="all">
</head>
<body>
<div class="layui-form" lay-filter="boardFilter">
<hr>
<div class="layui-form-pane layui-tab-content" style="margin: -10px auto;">
<div class="layui-inline">
<label class="layui-form-label" style="width: 100px;">查询内容</label>
<div class="layui-input-inline" style="width: 250px;">
<input class="layui-input" name="schName" placeholder="请输入学校名称" id="schName" autocomplete="off">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label" style="width: 100px;">学期</label>
    <div class="layui-input-inline" style="width: 200px;">
<select name="termId" id="termId">

</select>
    </div>
</div>
<div class="layui-inline">
<label class="layui-form-label" style="width: 100px;">列表状态</label>
    <div class="layui-input-inline" style="width: 150px;">
<select name="msgType" id="msgType">
<option value="">全部状态</option>
<option value="1">申请中</option>
    <option value="2">确认申请</option>
    <option value="3">已经发布</option>
    <option value="0">已撤销</option>
</select>
    </div>
</div>
<div class="layui-inline toolbarBtn">
<button class="layui-btn layui-btn-sm layui-btn-normal" lay-submit="" lay-filter="getSearch" id="getSearch" name="getSearch"><i class="layui-icon">&#xe615;</i> 查询</button>
</div>
</div>
</div>
<table class="layui-table" id="infoTable" lay-filter="filterTable"></table>
<script type="text/javascript" src="/vendor/jquery/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="/vendor/layui/layui.js"></script>
<script type="text/html" id="action">
<a class="layui-btn layui-btn-xs layui-btn-primary" lay-event="view">查看</a>
{{#  if(d.status===2){ }}
<a class="layui-btn layui-btn-xs" lay-event="send">推送</a>
{{#  } }}
{{#  if(d.status===3){ }}
    <a href='{{d.url}}' class='layui-btn layui-btn-xs'>下载排课表</a>
{{#  } }}
</script>
<script type="text/html" id="courseArrangeFlag">
{{#  if(d.courseArrangeFlag===0){ }}
    <h>行政班排课</h>
  {{#  } else { }}
  <h>走班排课</h>
{{#  } }}
</script>
<script type="text/html" id="status">
{{#  if(d.status===0){ }}
    <h>撤消申请</h>
  {{#  } else if(d.status===1){ }}
  <h>申请中</h>
{{#  } else if(d.status===2){ }}
  <h>排课中</h>
{{#  } else if(d.status===3){ }}
  <h>已经推送</h>
{{#  } else if(d.status===4){ }}
  <h>已发布课程表</h>
{{#  } }}
</script>
<script>
layui.use(['table','layer'], function() {
var table = layui.table
,form = layui.form;
var $ = layui.jquery, layer = layui.layer;

var tableIns = table.render({
elem: '#infoTable'
,url: '/web/courseArrange/list'
,id: 'idTable'
,page: true
,limits: [10,20,50,100]
,limit: 10 //默认采用10
,cols:  [[ //标题栏
    {checkbox: true, fixed: true}
    ,{field: 'courseArrangeId', title: '序号',  fixed: true}
    ,{field: 'schName', title: '学校名称'}
    ,{field: 'courseArrangeFlag', title: '排课类型', templet: '#courseArrangeFlag'}
    ,{field: 'termName', title: '学期'}
    ,{field: 'recordTime', title: '申请时间'}
    ,{field: 'status', title: '状态', templet: '#status'}
    ,{field: 'action', title: '操作', templet: '#action'}
    ]]
});

//监听管理操作
  form.on('switch(schControlInput)', function(obj){
  var normalValue
    if(obj.elem.checked){
    normalValue = '0';
    }else{
    normalValue = '1';
    }
$.ajax({
url:'/school/editIsNormalSchool',
type:"POST",
dataType:"json",
data:{"schId":this.value, "statusValue":normalValue},
success:function(res){
location.reload();
},
});
  });

// 监听Table工具条
table.on('tool(filterTable)', function(obj) {
var data = obj.data;
if (obj.event === 'view') {
location.href="courseArrangeView.html?id="+data.courseArrangeId+"&schId="+data.schId+"&areaId="+data.areaId;
}else if (obj.event === 'send') {
layer.open({
        type: 2,
        title: '导入并推送',
        maxmin: true,
        shadeClose: false, //点击遮罩关闭层
        area : ['700px' , '600px'],
        content: '/page/business/course/courseArrangeUpload.html?schId='+data.schId+'&areaId='+data.areaId+'&termId='+data.termId+'&courseArrangeFlag='+data.courseArrangeFlag+'&phone='+data.phone
        ,btn: '关闭'
        ,btnAlign: 'c' //按钮居中
        ,shade: 0 //不显示遮罩
        ,yes: function(){
            layer.closeAll();
         }
,end: function () {
                location.reload();
            }
});
}
});

form.on('submit(getSearch)', function(data){
    table.reload('idTable', {
where: data.field
});
});

$(document).ready(function () {
$("select[name=termNm]").empty();
    $.ajax({
        async: false,
        type: "POST",
        url: "/web/courseArrange/termList",
        dataType: "json",
        data: {},
        success: function (res) {
        var opt = "<option value='' selected = \'selected\'>全部</option>";
        $("select[name=termId]").append(opt);
for(var i=0; i<res.data.length; i++){
var option="<option value=\""+res.data[i].termId+"\"";
option += ">"+res.data[i].termName+"</option>"; //动态添加数据
$("select[name=termId]").append(option);
}
             layui.form.render('select','boardFilter');
        }
    });
});

});

</script>
</body>
</html>
在使用 FreeMarker 模板引擎时,可以通过条件判断为下拉框赋值。FreeMarker 提供了 `<#if>` 和 `<#list>` 等指令来实现逻辑控制和数据遍历,从而动态生成 HTML 内容。 ### 条件判断为下拉框赋值 #### 1. 使用 `<#if>` 进行条件判断 可以利用 `<#if>` 指令判断当前循环项是否与目标值匹配,若匹配则添加 `selected` 属性。以下是一个示例: ```ftl <select name="platform" id="platform"> <option value="1" <#if testInfo.platform?? && testInfo.platform! == 1>selected</#if>>Android</option> <option value="2" <#if testInfo.platform?? && testInfo.platform! == 2>selected</#if>>IOS</option> <option value="3" <#if testInfo.platform?? && testInfo.platform! == 3>selected</#if>>前端</option> <option value="4" <#if testInfo.platform?? && testInfo.platform! == 4>selected</#if>>Java</option> <option value="5" <#if testInfo.platform?? && testInfo.platform! == 5>selected</#if>>平台化</option> <option value="6" <#if testInfo.platform?? && testInfo.platform! == 6>selected</#if>>ERP</option> </select> ``` 此代码片段中,每个 `<option>` 标签都包含一个条件判断语句,用于检查 `testInfo.platform` 的值是否与当前选项的 `value` 匹配,并据此设置 `selected` 属性[^1]。 #### 2. 使用 `<#list>` 遍历数据集合 如果选项来源于一个数据集合,可以使用 `<#list>` 指令进行遍历,同时结合 `<#if>` 判断当前项是否需要选中。例如: ```ftl <select name="readingType.id" class="form-control" id="readingType"> <#list readType as type> <option value="${type.id}" <#if read.readingType.id == type.id>selected</#if>>${type.name}</option> </#list> </select> ``` 该示例通过 `<#list>` 遍历 `readType` 集合,生成下拉框的选项,并使用 `<#if>` 判断当前遍历项是否应被选中[^4]。 ### 数值处理注意事项 在 FreeMarker 中,数值可以直接输出,无需引号包围。小数点需用 `"."` 分隔,且不能使用分组符号 `","`。此外,数值不能省略小数点前的 `0`,如 `.5` 是无效写法;而 `8`, `+8`, `8.00` 均被视为相同数值[^2]。 ### 动态联动下拉框 对于需要实现多级联动的下拉框,通常涉及 AJAX 请求获取子级数据。虽然 FreeMarker 本身不直接支持 AJAX,但可以在页面中嵌入 JavaScript 脚本,根据用户选择触发请求并更新下拉框内容。以下是一个静态部分的示例: ```ftl <div class="layui-form-item" id="app_url" style="display: none;"> <div class="layui-inline"> <label class="layui-form-label">URL链接</label> <div class="layui-input-inline"> <select name="hm" lay-filter="url1" lay-verify="required"> <option value="">链接到栏目</option> <#list menu_rs as vo> <option value="${vo.id},${vo.controller}">${vo.title}</option> </#list> </select> </div> </div> <div class="layui-inline"> <label class="layui-form-label">落地页</label> <div class="layui-input-inline"> <select name="hm2" id="hm2"> <option value="">链接到具体网页</option> <option value="0">北京</option> <option value="1">上海</option> <option value="2">广州</option> <option value="3">深圳</option> <option value="4">杭州</option> </select> </div> </div> </div> ``` 上述代码展示了如何使用 FreeMarker 的 `<#list>` 指令动态生成 URL 链接的下拉选项[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值