当前位置: 首页 > 编程笔记 >

laravel-admin解决表单select联动时,编辑默认没选上的问题

廖弘量
2023-03-14
本文向大家介绍laravel-admin解决表单select联动时,编辑默认没选上的问题,包括了laravel-admin解决表单select联动时,编辑默认没选上的问题的使用技巧和注意事项,需要的朋友参考一下

今天在开发公司一个功能时,公司开发环境用的是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联动时,编辑默认没选上的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍详解element-ui中el-select的默认选择项问题,包括了详解element-ui中el-select的默认选择项问题的使用技巧和注意事项,需要的朋友参考一下 直接绑定将option中的value值绑定给v-model 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我有一个可编辑的datatable,包含列“Datatype”。编辑此列时,使用SelectOne菜单选择值“字符串”、“数字”或“日期”。当我进入编辑模式时,“Datatype”列被设置为“String”(数据类型列表的第一项),但我希望它是该列的当前值(就像在Primefaces showcase中:单击——例如,如果我单击第二个表的第一行和第三列,则应选择“Fiat”,而不是selectOn

  • 本文向大家介绍js解决select下拉选不中问题,包括了js解决select下拉选不中问题的使用技巧和注意事项,需要的朋友参考一下 当事件mouseover中出现select下拉框时,select下拉是选不中的,解决办法: var o = e.relatedTarget || e.toElement;//判断下移动到的对象,移动到option上ie下是null,firefox等为undefined

  • 基于文档:http://symfony.com/doc/2.8/form/dynamic_form_modific.html#form-events-submitted-data 我准备了动态生成表单。所有的工作都正常,但只有当我使用form添加新数据(/new)时,当我使用相同的form编辑现有数据时--不工作 “约会”的简单形式。它应该是这样工作的:用户选择客户机,然后第二个“选择”是填充正确

  • 本文向大家介绍解决EditText编辑时hint 在6.0 手机上显示不出来的问题,包括了解决EditText编辑时hint 在6.0 手机上显示不出来的问题的使用技巧和注意事项,需要的朋友参考一下 当EditText编辑时  hint 在 6.0 手机上显示不出来。。。。 就要增加一句话去重新设置颜色值   Android:textColorHint = "#707070" 以上这篇解决Edit

  • 问题内容: 我一直在尝试为angularJS设置默认的预选选项,由于某种原因,我无法这么做。这是相关Plunkr的链接。 以下是相关代码: 我已经尝试了ng-init和许多其他方式。我不知道如何使顶部选项成为预选的选项。 问题答案: 该链接的答案建议使用。我会在控制器或指令的函数中分配默认选项: 我认为不需要为该简单任务使用另一个指令。

  • 本文向大家介绍ueditor编辑器不能上传图片问题的解决方法,包括了ueditor编辑器不能上传图片问题的解决方法的使用技巧和注意事项,需要的朋友参考一下 ueditor是百度编辑器,在本地的iis环境是可以上传图片了,但放在服务器的iis环境无法上传图片了,经过搜索发现是iis设置问题,引起这个问题的主要原因是,大多数虚拟主机不会给IIS匿名账号访问磁盘上的非用户目录,连读取的权限都没有,既然我

  • 本文向大家介绍select标签设置默认选中的选项方法,包括了select标签设置默认选中的选项方法的使用技巧和注意事项,需要的朋友参考一下 方法有两种。 第一种 通过<select>的属性来设置选中项,此方法可以在动态语言如php在后台根据需要控制输出结果。 第二种 为通过前端js来控制选中的项: 获取<select>标签选中项文本的js代码为: 一些其它操作<select>标签的技巧如下: 1)