jairus / yii2-dual-listbox
Yii 2 双列表框小部件
dev-master
2020-05-19 19:45 UTC
Requires
- yiisoft/yii2: ~2.0
This package is not auto-updated.
Last update: 2024-10-03 15:19:29 UTC
README
从 ssimpson/yii2-dual-list-box 代码重构而来。
双列表框小部件
是 jQuery 和 Bootstrap 的双列表框插件的包装器,Bootstrap 双列表框是为 Bootstrap 和 jQuery 定制的双列表框实现。这个控件用户理解和操作起来都非常简单。它还支持与非常大的多选列表一起工作,而不会让用户感到困惑。
这个版本与父版本的不同之处在于它可以处理 JSON 数据提取。PHP/yii 包装器和实际的 JavaScript 都已更新,以实现此功能。
安装
通过 composer 安装此扩展是首选方式。
运行以下命令:
php composer.phar require --prefer-dist jairus/yii2-dual-listbox "dev-master"
或者(如果您已将 composer 添加到路径)
composer require --prefer-dist jairus/yii2-dual-listbox "dev-master"
或者将以下内容添加到您的 composer.json
文件的 require 部分:
"jairus/yii2-dual-listbox": "dev-master"
使用方法
扩展安装后,只需在您的代码中简单使用即可。
示例
视图
echo jairus\duallistbox\Widget::widget([
'model' => $model,
'attribute' => 'list_regions',
'title' => 'Example Title',
'data' => $region,
'data_id'=> 'id',
'data_value'=> 'name',
'json_uri' => 'http://example.com/data',
'lngOptions' => [
'warning_info' => 'Are you sure you want to move this many items? Doing so can cause your browser to become unresponsive.',
'search_placeholder' => 'Filter',
'showing' => ' - showing',
'available' => 'Available',
'selected' => 'Selected'
]
]);
模型 - 表单属性模型 - 表单标题模型属性 - 属性视图名称
数据 - 模型 (Region::find()->all()) 或 array['id' => 1, 'name' => '']; 这是与上游项目的一个变化。 data_id - id 数据的名称属性 - data_value - 值的名称属性
示例 JSON 数据
[
{
"index": 0,
"name": "Peters Sloan",
"company": "Kongle",
"email": "peterssloan@kongle.com",
"selected": true
},
{
"index": 1,
"name": "Bailey Hoffman",
"company": "Centrexin",
"email": "baileyhoffman@centrexin.com"
},
{
"index": 2,
"name": "Christine Hahn",
"company": "Geoform",
"email": "christinehahn@geoform.com",
"selected": false
}
]
在这个示例中,默认情况下只会选择 Peters Sloan
要刷新数据或使用不同的数据源
$('#list_regions').update({
uri: 'http://example.com/data2',
});
控制器 视图
$model = new ModelForm;
$region = Region::find()->all();
控制器 保存
$model = new ModelForm;
$model->load(Yii::$app->request->post());
$region_model = Json::decode($model->list_regions);