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.MVC的模板标签系统(三)
Sep 05 PHP
用php和MySql来与ODBC数据连接
Oct 09 PHP
php读取mysql乱码,用set names XXX解决的原理分享
Dec 29 PHP
php向js函数传参的几种方法
Aug 10 PHP
PHP中的闭包(匿名函数)浅析
Feb 07 PHP
smarty模板引擎基础知识入门
Mar 30 PHP
分析PHP中单双引号的误区和双引号小隐患
Jul 19 PHP
php根据年月获取当月天数及日期数组的方法
Nov 30 PHP
PHP面向对象程序设计之对象生成方法详解
Dec 02 PHP
php自定义截取中文字符串-utf8版
Feb 27 PHP
PHP7内核之Reference详解
Mar 14 PHP
laravel 多图上传及图片的存储例子
Oct 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
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
2014/06/12 PHP
Yii2.0预定义的别名功能小结
2016/07/04 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
ExtJS 2.0实用简明教程 之Border区域布局
2009/04/29 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
2016/03/01 Javascript
浅谈js中字符和数组一些基本算法题
2016/08/15 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
python中map()与zip()操作方法
2016/02/27 Python
学习Python selenium自动化网页抓取器
2018/01/20 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
2019/06/18 Python
Django之创建引擎索引报错及解决详解
2019/07/17 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
2019/08/08 Python
python飞机大战 pygame游戏创建快速入门详解
2019/12/17 Python
C#中的验证控件有几种
2014/03/08 面试题
房屋买卖委托公证书
2014/04/08 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
城市规划应届毕业生自荐信
2014/07/04 职场文书
爱心捐书倡议书
2015/04/27 职场文书
千手观音观后感
2015/06/03 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL