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 相关文章推荐
Mysql的常用命令
Oct 09 PHP
实用函数10
Nov 08 PHP
QQ登录 PHP OAuth示例代码
Jul 20 PHP
鸡肋的PHP单例模式应用详解
Jun 03 PHP
PHP中echo,print_r与var_dump区别分析
Sep 29 PHP
php计算多维数组中所有值总和的方法
Jun 24 PHP
PHP的PDO操作简单示例
Mar 30 PHP
PHP.vs.JAVA
Apr 29 PHP
微信公众号开发之语音消息识别php代码
Aug 08 PHP
PHP开发APP端微信支付功能
Feb 17 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 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中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
php 获取完整url地址
2008/12/20 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
PHP大批量插入数据库的3种方法和速度对比
2014/07/08 PHP
php中memcache 基本操作实例
2015/05/17 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
javascript 写类方式之三
2009/07/05 Javascript
jquery制作漂亮的弹出层提示消息特效
2014/12/23 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
javascript实现英文首字母大写
2015/04/23 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
2017/03/11 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
js实现批量删除功能
2020/08/27 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
Python map和reduce函数用法示例
2015/02/26 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
pandas系列之DataFrame 行列数据筛选实例
2018/04/12 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
Python实现账号密码输错三次即锁定功能简单示例
2019/03/29 Python
如何利用pygame实现简单的五子棋游戏
2019/12/29 Python
Python数据库封装实现代码示例解析
2020/09/05 Python
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
2014年元旦促销活动方案
2014/02/22 职场文书
网络工程专业自荐信范文
2014/03/16 职场文书
文明好少年事迹材料
2014/08/19 职场文书
供应商食品安全承诺书
2015/04/29 职场文书
个人承诺书格式范文
2015/04/29 职场文书
入团介绍人意见范文
2015/06/04 职场文书
何时使用Map来代替普通的JS对象
2021/04/29 Javascript
Python数据类型最全知识总结
2021/05/31 Python