我需要在Cms后端表单(fields.yaml)中创建一个多选表单字段。我采用了以下方法
选择_字段:
此字段的选项将从模型中调用
一切正常,但当我提交表单时,只有第一个选择的选项作为JSON数据插入到数据库表文本字段中。我希望存储每个选定的选项。我也在模型中声明该字段为Jsonable,即受保护的$Jsonable=['field_name'];
注意:当我使用类型作为检查框列表时,它像我想的那样工作,但我不希望它是检查框列表。我刚到十月cms有什么简单的方法吗...
你可以使用标签小部件做到这一点;-)
此外,daftspunk还提出了一个解决方案:https://github.com/octobercms/october/issues/1829#issuecomment-193018469
不能使用具有多个值的下拉字段,因为该字段用于处理单个值。作为复选框和收音机,这就是为什么有复选框列表(我猜)。
但我找到了解决办法。在fields.yaml中使用部分作为字段类型,而不是下拉列表
https://octobercms.com/docs/backend/forms#field-局部的
用下面的内容创建一个部分(注意名称中的[]属性,这就是它工作的原因!)
但请注意,这只是一个技巧,你只能使用直接yaml选项分配https://octobercms.com/docs/backend/forms#field-dropdown
<?php
$fieldOptions = $field->options();
//get the field value as an array
$selectedValues = (array)$field->value;
?>
<!-- Dropdown -->
<?php if ($this->previewMode): ?>
<div class="form-control"><?= (isset($fieldOptions[$field->value])) ? e(trans($fieldOptions[$field->value])) : '' ?></div>
<?php else: ?>
<select
id="<?= $field->getId() ?>"
name="<?= $field->getName() ?>[]"
class="form-control custom-select"
<?= $field->getAttributes() ?>>
<?php if ($field->placeholder): ?>
<option value=""><?= e(trans($field->placeholder)) ?></option>
<?php endif ?>
<?php foreach ($fieldOptions as $value => $option): ?>
<?php
if (!is_array($option)) $option = [$option];
?>
<option
<?= in_array($value, $selectedValues) ? 'selected="selected"' : '' ?>
<?php if (isset($option[1])): ?>data-<?=strpos($option[1],'.')?'image':'icon'?>="<?= $option[1] ?>"<?php endif ?>
value="<?= $value ?>">
<?= e(trans($option[0])) ?>
</option>
<?php endforeach ?>
</select>
<?php endif?>
亚马尔呢
```
select_field:
label: Sample
type: partial
path:$/author/plugin/models/classfolder/_my_partial.htm
attributes: {multiple:'multiple'}
options:
key:value
key:value
```
更好的方法可能是构建一个小部件,或者如果您有能力触摸核心并添加
在\modules\backend\widgets\form\partials中使用名称\u field\u dropdownlist显示相同的内容。热媒
然后进入\modules\backend\widgets\form\form。php第630行更改:
$optionModelTypes = ['dropdown', 'radio', 'checkboxlist', 'balloon-selector'];
添加不带_字段或的部分名称。htm ex_field_dropdownlist。htm成为下拉列表
$optionModelTypes = ['dropdown', 'radio', 'checkboxlist', 'balloon-selector','dropdowlist'];
现在在yaml文件中,只需使用type:dropdownList即可。
基于活动记录(ActiveRecord)的表单:ActiveForm 在yii中使用表单的主要方式是通过 yii\widgets\ActiveForm。 当某个表单是基于一个模型时,应该首选这种方式。 此外,在 yii\helpers\Html 中有很多实用的方法为表单添加按钮和帮助文档。 在客户端显示的表单,大多数情况下都有一个相应的模型, 用来在服务器上验证其输入的数据(可在输入验证一节获取关
我正在android studio中使用java创建一个电子商务应用程序。我想创建一个多选下拉列表,用户可以从中选择一个或多个尺寸。我想填写包含MySQL数据库中所有大小的下拉列表。有谁能告诉我怎么做,或者给我建议一些教程,因为我现在还没有得到。
问题内容: 在我的应用程序中,我有几个带有许多选项的表单字段。我遇到的问题类似于此问题:在每次页面加载时获取和解析所有选项的成本很高(Twig一次又一次地渲染所有选项,而无法进行客户端缓存)。这个问题使我创造了一种通过AJAX将选项发送到浏览器的方法。相当简单的方法: 通过AJAX获取所有选项(键值)(例如,通过获取/countries.json),并在可能的情况下进行缓存。(在这种情况下,国名不
问题内容: 我在html文件中有一个multiselect像这样: 当我通过以下方式访问flask / python中的mymultiselect字段时: 或通过使用request.args.get函数,它仅返回一个选定的项目。我了解到,要获取所有选定的项目,我必须在字段名称中添加[],如下所示: 通过查看firebug中的发布数据,我可以看到它正在工作,但是我每次尝试在flask / pytho
想改进这个问题吗 通过编辑此帖子,更新问题,使其只关注一个问题。 我正在android studio中使用java创建一个电子商务应用程序。我想创建一个多选下拉列表,用户可以从中选择一个或多个尺寸。我想填写包含MySQL数据库中所有大小的下拉列表。有谁能告诉我怎么做,或者给我建议一些教程,因为我现在还没有得到。
问题内容: 我在尝试了解如何在Django中创建动态选择字段时遇到了一些麻烦。我有一个模型设置类似: 我想做的是创建一个选择字段whos的值是与该骑手相关联的航点(将是登录的人)。 目前,我以如下形式覆盖init: 但是所有要做的就是列出所有路标,它们与任何特定的骑手都没有关联。有任何想法吗?谢谢。 问题答案: 你可以通过将用户传递给表单init来过滤航点 启动表单时从你的角度来看 在模型形式的情