Laravel 背包字段 - select_from_array 功能
Laravel backpack fields - select_from_array functionality
我正在使用 laravel 背包。已经创建了一个新的申请表。使用 'select_from_array':
创建了几个可供选择的字段
$this->crud->field('range')->type('select_from_array)->label(__('number range'))
->options(Group::NUMBER_RANGE);
$this->crud->field('range1')->type('select_from_array)->label(__('letter range'))
->options(Group::LETTER_RANGE);
$this->crud->field('range2')->type('select_from_array)->label(__('symbol range'))
->options(Group::SYMBOL_RANGE);
例如,每个字段有 3 个下拉值可供选择(为了更清楚,假设数字范围有 1 / 2 / 3,然后字母范围有 A / B / C,符号范围有太阳/月亮/风)。
我想应用此功能 - 如果从数字范围 I select 1,我希望该字母范围仅显示 A 和 B(并且 C 应该从值选择中消失)和符号范围给我看风。或者,如果我选择字段字母范围并选择选项值 B,我希望符号范围字段只显示 Sun。
一般来说,我希望字段会根据我在前一个字段中所做的选择相互反应,下一个字段会显示我可以选择的不同选项。
我该怎么做?
提前谢谢你:)
Backpack 目前并不容易做到这一点,但也不难做到。
选项 A - javascript
您可以使用 the script widget 在页面上推送一些 javascript,这将执行您想要的任何操作,包括此功能。
Widget::add()->type('script')->content('assets/js/admin/request_form.js');
有一个活跃的拉取请求试图使与 front-end 上的字段交互变得更容易(PR #4312),但在合并之前,您可以使用 vanilla JS 或 jQuery 随心所欲
选项 B - select2_from_ajax
或者,您可以使用 select2_from_ajax 字段类型,它允许您使用“依赖”属性来做到这一点。由于您可以控制 AJAX 端点,因此您可以根据其他表单选择 return 不同的结果。
但是:
- 我认为让这 3 个选择产生 AJAX 请求有点矫枉过正,因为一些 JS 可以对常规选择做同样的事情;
- 这是一个 PRO 字段,因此只有购买了 PRO 插件才能使用;
我正在使用 laravel 背包。已经创建了一个新的申请表。使用 'select_from_array':
创建了几个可供选择的字段$this->crud->field('range')->type('select_from_array)->label(__('number range'))
->options(Group::NUMBER_RANGE);
$this->crud->field('range1')->type('select_from_array)->label(__('letter range'))
->options(Group::LETTER_RANGE);
$this->crud->field('range2')->type('select_from_array)->label(__('symbol range'))
->options(Group::SYMBOL_RANGE);
例如,每个字段有 3 个下拉值可供选择(为了更清楚,假设数字范围有 1 / 2 / 3,然后字母范围有 A / B / C,符号范围有太阳/月亮/风)。
我想应用此功能 - 如果从数字范围 I select 1,我希望该字母范围仅显示 A 和 B(并且 C 应该从值选择中消失)和符号范围给我看风。或者,如果我选择字段字母范围并选择选项值 B,我希望符号范围字段只显示 Sun。
一般来说,我希望字段会根据我在前一个字段中所做的选择相互反应,下一个字段会显示我可以选择的不同选项。
我该怎么做?
提前谢谢你:)
Backpack 目前并不容易做到这一点,但也不难做到。
选项 A - javascript
您可以使用 the script widget 在页面上推送一些 javascript,这将执行您想要的任何操作,包括此功能。
Widget::add()->type('script')->content('assets/js/admin/request_form.js');
有一个活跃的拉取请求试图使与 front-end 上的字段交互变得更容易(PR #4312),但在合并之前,您可以使用 vanilla JS 或 jQuery 随心所欲
选项 B - select2_from_ajax
或者,您可以使用 select2_from_ajax 字段类型,它允许您使用“依赖”属性来做到这一点。由于您可以控制 AJAX 端点,因此您可以根据其他表单选择 return 不同的结果。
但是:
- 我认为让这 3 个选择产生 AJAX 请求有点矫枉过正,因为一些 JS 可以对常规选择做同样的事情;
- 这是一个 PRO 字段,因此只有购买了 PRO 插件才能使用;