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
php中的实现trim函数代码
Mar 19 PHP
PHP中数组的三种排序方法分享
May 07 PHP
PHP Global定义全局变量使用说明
Aug 15 PHP
php对二维数组进行排序的简单实例
Dec 19 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
Dec 18 PHP
yii2中使用Active Record模式的方法
Jan 09 PHP
Android AsyncTack 异步任务实例详解
Nov 02 PHP
微信公众号实现会员卡领取功能
Jun 08 PHP
利用PHP判断是否是连乘数字串的方法示例
Jul 03 PHP
用Laravel轻松处理千万级数据的方法实现
Dec 25 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
计算2000年01月01日起到指定日的天数
2006/10/09 PHP
php生成随机数或者字符串的代码
2008/09/05 PHP
php cookie 登录验证示例代码
2009/03/16 PHP
10个实用的PHP代码片段
2011/09/02 PHP
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
php开发工具有哪五款
2015/11/09 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
解析URI与URL之间的区别与联系
2013/11/22 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
最全面的百度地图JavaScript离线版开发
2016/09/10 Javascript
js获取元素的标签名实现方法
2016/10/08 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
ES6 javascript的异步操作实例详解
2017/10/30 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
在linux系统下安装python librtmp包的实现方法
2019/07/22 Python
python 表格打印代码实例解析
2019/10/12 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
python3实现将json对象存入Redis以及数据的导入导出
2020/07/16 Python
Python txt文件如何转换成字典
2020/11/03 Python
华美博弈C/VC工程师笔试试题
2012/07/16 面试题
教师个人的自我评价分享
2014/01/02 职场文书
给医务人员表扬信
2014/01/12 职场文书
如何写通讯稿
2015/07/22 职场文书
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server