laravel-admin解决表单select联动时,编辑默认没选上的问题


Posted in PHP onSeptember 30, 2019

今天在开发公司一个功能时,公司开发环境用的是laravel-admin,因为需要用上select联动,所以根据文档说明进行开发,并成功的使用上了,代码我就不重复,大家可以去参考laravel-admin官网的说明。

首先我们找到select的js,路径:跟目录/vendor/encore/laravel-admin/src/Form/Field下的Select.php文件,找到下面代码:

$script = <<<EOT
$(document).on('change', "{$this->getElementClassSelector()}", function () {
 var target = $(this).closest('.fields-group').find(".$class");
 $.get("$sourceUrl?q="+this.value, function (data) {
  target.find("option").remove();
  $(target).select2({
   data: $.map(data, function (d) {
    d.id = d.$idField;
    d.text = d.$textField;
    return d;
   })
  }).trigger('change');
 });
});
 
EOT;

并修改成以下代码:

$script = <<<EOT
$(document).on('change', "{$this->getElementClassSelector()}", function () {
 var target = $(this).closest('.fields-group').find(".$class");
 $.get("$sourceUrl?q="+this.value, function (data) {
  target.find("option").remove();
  $(target).select2({
   data: $.map(data, function (d) {
    d.id = d.$idField;
    d.text = d.$textField;
    return d;
   })
  }).trigger('change');
 });
});
 
$('{$this->getElementClassSelector()}').trigger('change');
 
EOT;

我们在原有代码中加入这句:

$('{$this->getElementClassSelector()}').trigger('change');

作用就是在初始化的时候触发一次联动。

然后在我们的表单中,我们再来定义编辑初始时候的值,代码如下:

$form->select('hezuo', "合作模式")->options(function () {
 $record = request()->route()->parameters();
 $record = $record["chanpin"];
 $data = ChanpinModel::where('id', $record)->first();
 $hezuoList = array(
  "1" => '测试1',
  "2" => '测试2',
  "3" => '测试3',
  );
 $hezuo = $data->hezuo;
 return [$hezuo => $hezuoList[$hezuo]];
});

这段代码是根据当前记录的值,去获取对应所属那个选项,这样便使select联动编辑时,能够默认选上我们的值。

以上这篇laravel-admin解决表单select联动时,编辑默认没选上的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
社区(php&amp;&amp;mysql)五
Oct 09 PHP
PHP 中英文混合排版中处理字符串常用的函数
Apr 12 PHP
批量修改RAR文件注释的php代码
Nov 20 PHP
PHP求最大子序列和的算法实现
Jun 24 PHP
使用PHP遍历文件夹与子目录的函数代码
Sep 26 PHP
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
Aug 08 PHP
thinkPHP的Html模板标签使用方法
Nov 13 PHP
解析php中die(),exit(),return的区别
Jun 20 PHP
php遍历目录与文件夹的多种方法详解
Nov 14 PHP
php正则匹配html中带class的div并选取其中内容的方法
Jan 13 PHP
深入php内核之php in array
Nov 10 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 PHP
laravel-admin的图片删除实例
Sep 30 #PHP
laravel-admin的多级联动方法
Sep 30 #PHP
php更新cookie内容的详细方法
Sep 30 #PHP
使用laravel的migrate创建数据表的方法
Sep 30 #PHP
Yii2.0框架behaviors方法使用实例分析
Sep 30 #PHP
php解决约瑟夫环算法实例分析
Sep 30 #PHP
php使用curl伪造浏览器访问操作示例
Sep 30 #PHP
You might like
PHP 彩色文字实现代码
2009/06/29 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
php实现带读写分离功能的MySQL类完整实例
2016/07/28 PHP
js下用层来实现select的title提示属性
2010/02/23 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
深入理解JavaScript中Ajax
2016/08/02 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
jquery PrintArea 实现票据的套打功能(代码)
2017/03/17 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
详解Vue如何支持JSX语法
2017/11/10 Javascript
Vue cli构建及项目打包以及出现的问题解决
2018/08/27 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
python 获取本机ip地址的两个方法
2013/02/25 Python
Python中执行存储过程及获取存储过程返回值的方法
2017/10/07 Python
从0开始的Python学习016异常
2019/04/08 Python
Django--权限Permissions的例子
2019/08/28 Python
python实现多进程通信实例分析
2019/09/01 Python
Matplotlib使用字符串代替变量绘制散点图的方法
2020/02/17 Python
Python实现像awk一样分割字符串
2020/09/15 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
德国内衣、泳装和睡衣网上商店:Bigsize Dessous
2018/07/09 全球购物
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
大学三年的自我评价
2013/12/25 职场文书
2014年社团工作总结范文
2014/11/27 职场文书
公司股份转让协议书范本
2015/01/28 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
2015年检验科工作总结
2015/04/27 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
创业计划书之网吧
2019/10/10 职场文书
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL