execut/yii2-dropdown-content-input

为 yii2 定制的下拉列表字段

安装次数: 1,720

依赖者: 0

建议者: 0

安全性: 0

星标: 3

关注者: 4

分支: 2

公开问题: 0

语言:JavaScript

类型:yii2-extension

dev-master 2021-02-17 08:10 UTC

This package is auto-updated.

Last update: 2024-09-17 15:49:20 UTC


README

此小部件允许您在下拉列表中嵌入任何内容,例如 GridView。为此,您需要在容器小部件的设置中传递 HTML 内容('containerOptions'),其中每个下拉选项都有类 "item" 和属性:name(显示选中值),val(输入字段的选中值)。小部件使用 bootstrap 网格将列表容器的宽度拉伸为行宽。

安装

安装此扩展的首选方式是通过 composer

安装

运行以下命令之一:

$ php composer.phar require execut/yii2-dropdown-content-input "dev-master"

或将其添加到您的 composer.json 文件的 require 部分:

"execut/yii2-dropdown-content-input": "dev-master"

require

简单示例

此示例展示了如何将 GridView 传递给小部件并在表单中使用小部件: 展开的第一个选择 展开的第三个选择

<?php
use \yii\data\ArrayDataProvider;
use \execut\widget\dropdownContent\DropdownContent;
use \yii\widgets\ActiveForm;

class TestModel extends \yii\base\Model{
    public $city = null;
    public $otherCity = null;
}

$dataProvider = new ArrayDataProvider();
$dataProvider->allModels = [
    [
        'name' => 'Moskow',
        'country' => 'Russia'
    ],
    [
        'name' => 'London',
        'country' => 'UK',
    ],
    [
        'name' => 'Washington',
        'country' => 'USA'
    ],
];
$dataProvider->key = 'name';

$widgetParams = [
    'name' => 'test',
    'value' => 'London',
    'inputOptions' => [
        'placeholder' => 'Test placeholder...'
    ],
    'containerOptions' => [
        'isExpand' => true,
        'content' => function () use ($dataProvider) {
            return \yii\grid\GridView::widget([
                'columns' => [
                    'name' => [
                        'attribute' => 'name',
                    ],
                ],
                'dataProvider' => $dataProvider,
                'rowOptions' => function ($row) {
                    return [
                        'class' => 'item',
                        'val' => $row['name'],
                        'text' => $row['name'],
                    ];
                },
            ]);
        },
    ],
];
$form = new ActiveForm();
?>
<div class="container">
    <div class="row">
        <div class="col-md-4">
            <div class="form-group">
                <?php
                /**
                 * Usage as widget
                 */
                echo DropdownContent::widget($widgetParams);
                $widgetParams['containerOptions']['isExpand'] = false;
                ?>
            </div>
        </div>
    </div>
    <!-- Set relative position bootstrap row for stretching container content by width of row-->
    <div class="row" style="position: relative">
        <!--        Reset position for bootstrap col to default-->
        <div class="col-md-6" style="position: static">
            <div class="form-group">
                <?php
                /**
                 * Usage as form field
                 */
                $model = new TestModel();

                echo $form->field($model, 'city')->widget(DropdownContent::class, $widgetParams);
                ?>
            </div>
        </div>
        <!--        Reset position for bootstrap col to default-->
        <div class="col-md-6" style="position: static">
            <div class="form-group">
                <?php
                echo $form->field($model, 'otherCity')->widget(DropdownContent::class, $widgetParams);
                ?>
            </div>
        </div>
    </div>
</div>

许可证

yii2-dropdown-content-input 在 Apache License Version 2.0 许可下发布。有关详细信息,请参阅捆绑的 LICENSE.md 文件。