ulthon_admin
欢迎 目录和文件规范 系统架构 命名规范 php-cs-fixer public/static目录规范 app/common目录规范 数据库规范 CURD 命令行 表结构 数据库迁移代码 最佳实践 数据库自动缓存 后台菜单导入导出 权限的用法 table数据表格 cols operat _if titleField field selectList valueParser trueHide fieldFormat templet defaultValue search相关 time defaultSearchValue defaultToolbar init formFullScreen toobar modifyReload 控制器 CURD方法 导出 控制器通用验证 dataBrage向js传递参数 组件控件 select 下拉菜单option拼接 lay-submit paste-text粘贴 multiple-columns editor data-upload上传 tag-input标签输入 property-input动态字段输入 data-date时间控件参数 table-data列表选择器 city-picker城市选择器 copy-text 全局监听组件 data-request data-open 内置定时器 并发模式 重置密码 系统配置 PHP助手函数 sysconfig JS助手函数 checkMobile empty open 弹框 叠加loading getDataBrage getQueryVariable 扩展机制 事件扩展 实现事件 执行事件 事件列表 AdminLayoutRequireAfter LoadMigrationFiles AdminLoginIndex AdminLoginForget AdminLoginType AdminMenuTab AdminLayoutRequireBefore 自动更新 性能优化 精简代码 关闭数据库日志驱动 皮肤 正常 科幻 其他 切换模块时直接切换内容 关闭上传文件注入检测 代码编译原理 接入workerman和命令参数 升级TP6.1 Request的默认过滤 异步引入全局script 线上安装脚本 兼容PHP8.1

动态生成下拉菜单时的拼接

有时候我们希望下拉菜单不仅仅显示title这一个数据,这时候可以在ea.listen()之前给对应select设置一个回调函数.

例子

  1. add: function () {
  2. $('select[name="field_id"]').data('template',function(data,fields){
  3. return data['title']+'('+data['unit']+')';
  4. })
  5. ua.listen();
  6. },

需要在form表单中,对select设置field字段:

  1. <div class="layui-form-item">
  2. <label class="layui-form-label">数据格式</label>
  3. <div class="layui-input-block">
  4. <select name="field_id" lay-verify="required" data-select="{:url('data.field/index')}" lay-search data-fields="id,title,unit" >
  5. </select>
  6. </div>
  7. </div>

注意,data-fields填写了三个字段,可以根据需要天蝎更多

最终效果如下:

PHP生成下拉菜单时的拼接

使用PHP生成下拉菜单时,没有依赖其他代码逻辑,直接在对应代码修改即可.

当使用表关联并且设置了下拉菜单字段时,会生成这样的代码:

控制器

注意看,这里向试图传递了一个列表.

  1. public function __construct(App $app)
  2. {
  3. parent::__construct($app);
  4. $this->model = new \app\admin\model\FarmSensorFormat();
  5. $this->assign('getFarmSensorFunctionList', $this->model->getFarmSensorFunctionList());
  6. // ...
  7. }
模型

在模型里查询这样一个列表

  1. public function getFarmSensorFunctionList()
  2. {
  3. return \app\admin\model\FarmSensorFunction::column('title', 'id');
  4. }

我们可以把这个查询改成正常的select查询

  1. public function getFarmSensorFunctionList()
  2. {
  3. return \app\admin\model\FarmSensorFunction::select()
  4. }
视图

生成的视图是这样

  1. <div class="layui-form-item">
  2. <label class="layui-form-label">传感器类型</label>
  3. <div class="layui-input-block">
  4. <select name="function_id" lay-verify="required" data-value="{$Request.param.function_id}">
  5. <option value=''></option>
  6. {foreach $getFarmSensorFunctionList as $k=>$v}
  7. <option value='{$k}' {in name="k" value="$row.id"}selected=""{/in} >{$v}</option>
  8. {/foreach}
  9. </select>
  10. </div>
  11. </div>

我们可以把这段循环改成select之后的数据循环

  1. {foreach $getFarmSensorFunctionList as $k=>$v}
  2. <option value='{$v.id}' {in name="$v.id" value="$row.id"}selected=""{/in} >{$v.title}({$v.unit})</option>
  3. {/foreach}

原文标题:下拉菜单option拼接

原文文档:ulthon_admin

原文地址:https://doc.ulthon.com/read/augushong/ulthon_admin/61a5e3fe49c4c/zh-cn/2.x.html

原文平台:奥宏文档

2.x