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+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
Dec 16 PHP
PHP中break及continue两个流程控制指令区别分析
Apr 18 PHP
JS中encodeURIComponent函数用php解码的代码
Mar 01 PHP
ThinkPHP中的常用查询语言汇总
Aug 22 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
Nov 22 PHP
php模拟登陆的实现方法分析
Jan 09 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
Apr 09 PHP
win平台安装配置Nginx+php+mysql 环境
Jan 12 PHP
PHP学习笔记之php文件操作
Jun 03 PHP
php禁用cookie后session设置方法分析
Oct 19 PHP
django中的ajax组件教程详解
Oct 18 PHP
vmware linux系统安装最新的php7图解
Apr 14 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
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
2016/06/22 PHP
PHP面向对象程序设计之类与反射API详解
2016/12/02 PHP
利用laravel+ajax实现文件上传功能方法示例
2017/08/13 PHP
javascript之ESC(第二类混淆)
2007/05/06 Javascript
在IE上直接编辑网页内容的js代码(IE地址栏js)
2009/04/27 Javascript
jQuery版Tab标签切换
2011/03/16 Javascript
js、css、img等浏览器缓存问题的2种解决方案
2013/10/23 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
Vue.js render方法使用详解
2017/04/05 Javascript
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
Kotlin学习第一步 kotlin语法特性
2017/05/25 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
JS中的BOM应用
2018/02/02 Javascript
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
jQuery擦除插件eraser使用方法详解
2020/01/11 jQuery
vue-cli3 热更新配置操作
2020/09/18 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
[52:26]完美世界DOTA2联赛决赛 FTD vs Phoenix 第一场 11.08
2020/11/11 DOTA
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
python 内置函数filter
2017/06/01 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
2018/04/27 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
Python递归调用实现数字累加的代码
2020/02/25 Python
通过python 执行 nohup 不生效的解决
2020/04/16 Python
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
铭立家具面试题
2012/12/06 面试题
岗位聘任书范文
2014/03/29 职场文书
社区先进事迹材料
2014/05/19 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
质量保证书怎么写
2015/02/27 职场文书
学校中秋节活动总结
2015/03/23 职场文书
建党伟业观后感
2015/06/01 职场文书
人生感悟经典句子
2019/08/20 职场文书