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预定义常量
Dec 25 PHP
介绍php设计模式中的工厂模式
Jun 12 PHP
PHP Array交叉表实现代码
Aug 05 PHP
php添加文章时生成静态HTML文章的实现代码
Feb 17 PHP
PHP使用Pear发送邮件(Windows环境)
Jan 05 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
Mar 23 PHP
Thinkphp框架开发移动端接口(2)
Aug 18 PHP
基于PHP制作验证码
Oct 12 PHP
php实现图片以base64显示的方法
Oct 13 PHP
php+jQuery递归调用POST循环请求示例
Oct 14 PHP
php中的异常和错误浅析
May 03 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
Jun 19 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
第十节 抽象方法和抽象类 [10]
2006/10/09 PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
2012/01/10 PHP
深入php中var_dump方法的使用详解
2013/06/24 PHP
PHP中include与require使用方法区别详解
2013/10/19 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
2015/05/12 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
一些有关检查数据的JS代码
2006/09/07 Javascript
Ext JS Grid在IE6 下宽度的问题解决方法
2009/02/15 Javascript
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
2014/01/15 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
Javascript小技能总结(推荐)
2016/06/02 Javascript
javascript监听页面刷新和页面关闭事件方法详解
2017/01/09 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
详解Vue方法与事件
2017/03/09 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
elementUI select组件默认选中效果实现的方法
2019/03/25 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
详解Python 函数如何重载?
2019/04/23 Python
对Django外键关系的描述
2019/07/26 Python
在Python中os.fork()产生子进程的例子
2019/08/08 Python
python实现小程序推送页面收录脚本
2020/04/20 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
Canvas获取视频第一帧缩略图的实现
2020/11/11 HTML / CSS
招商业务员岗位职责
2013/12/16 职场文书
务工证明怎么写
2015/06/18 职场文书