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实现小型站点广告管理
Oct 09 PHP
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
Oct 09 PHP
PHP中通过加号合并数组的一个简单方法分享
Jan 27 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
Jun 28 PHP
PHP类的静态(static)方法和静态(static)变量使用介绍
Feb 19 PHP
php数组使用规则分析
Feb 27 PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 PHP
解读PHP中上传文件的处理问题
May 29 PHP
PHP 数组遍历foreach语法结构及实例
Jun 13 PHP
老生常谈PHP面向对象之标识映射
Jun 21 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
Ajax+Jpgraph实现的动态折线图功能示例
Feb 11 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
通过文字传递创建的图形按钮
2006/10/09 PHP
php 不同编码下的字符串长度区分
2009/09/26 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
2013/04/24 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
JS模拟并美化的表单控件完整实例
2015/08/19 Javascript
使用jQuery制作基础的Web图片轮播效果
2016/04/22 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
2017/03/14 Javascript
Vue.js 2.5新特性介绍(推荐)
2017/10/24 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
小程序点击图片实现自动播放视频
2020/05/29 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
JQuery省市联动效果实现过程详解
2020/05/08 jQuery
axios解决高并发的方法:axios.all()与axios.spread()的操作
2020/11/09 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
vue3.0实现插件封装
2020/12/14 Vue.js
[01:44]剑指西雅图 展望TI之CIS战队专访
2014/06/25 DOTA
详解Python3中字符串中的数字提取方法
2017/01/14 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
2019/07/19 Python
python实现名片管理器的示例代码
2019/12/17 Python
Python面向对象编程基础实例分析
2020/01/17 Python
python文件和文件夹复制函数
2020/02/07 Python
python实现简单俄罗斯方块
2020/03/13 Python
Python Selenium操作Cookie的实例方法
2021/02/28 Python
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
副总经理工作职责
2013/11/28 职场文书
机关门卫制度
2014/02/01 职场文书
车间主任岗位职责
2014/03/16 职场文书
2014年大学生党课心得体会范文
2014/03/29 职场文书
我是特种兵观后感
2015/06/11 职场文书