esubach / yii2-dual-list-box
适用于 Yii 2 的双列表框小部件
dev-master
2021-02-26 17:06 UTC
Requires
- yiisoft/yii2: ~2.0
This package is not auto-updated.
Last update: 2024-09-22 07:56:57 UTC
README
双列表框小部件
是 jQuery 和 Bootstrap 的双列表框插件的包装器,Bootstrap 双列表框是专门为 Bootstrap 和 jQuery 设计的双列表框实现。这个控件用户易于理解和使用。它还可以处理非常大的多选,而不会让用户感到困惑。
这个版本与父版本的不同之处在于它支持从 JSON 数据中提取数据。PHP/yii 包装器和实际的 JavaScript 都已更新以实现此功能。
MIT 许可证 (MIT)
安装
通过 Composer 安装此扩展是首选方法。
运行以下命令之一:
php composer.phar require --prefer-dist esubach/yii2-dual-list-box "dev-master"
或(如果您路径中有 Composer)
composer require --prefer-dist esubach/yii2-dual-list-box "dev-master"
或在您的 composer.json
文件的 require 部分添加以下内容:
"esubach/yii2-dual-list-box": "dev-master"
使用方法
扩展安装完成后,只需在您的代码中简单地使用它即可
示例
视图
echo esubach\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()) OR array['id'=>1,'name'=>'']; 这是与上游项目的一个变化。 data_id - id 数据对应的名称属性
样本 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",
"visuals": "red"
},
{
"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);