uhi67 / selectfrom
Yii2 的对话框选择输入小部件
Requires
- php: >=5.4.0
- yiisoft/yii2: >=2.0.5
- yiisoft/yii2-bootstrap: *
- yiisoft/yii2-jui: ^2.0
README
这是一个为 Yii Framework 2.0 创建通过对话框窗口从 Ajax 源选择值输入字段的小部件组件。
安装
安装此扩展的首选方式是通过 composer。要安装,请运行
$ php composer.phar require uhi67/selectfrom "1.0.*"
或添加
"uhi67/selectfrom" : "1.0.*"
或从 github 克隆
git clone https://bitbucket.org/uhi/selectfrom.git
先决条件
使用方法
在 activeForm 中的基本使用
在视图中
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'parent', ['labelOptions'=>['class'=>'col-md-4']])->widget(SelectFromWidget::className(), [
'title' => 'Choose parent department',
'nameValue' => $model->parent0->name,
'ajax' => Url::to(['/org/selectfrom/']),
'data' => ['s'=>$model->parent, 'd'=>$model->id, 'c'=>$model->parent],
]) ?>
<?php ActiveForm::end(); ?>
创建的 html 示例
<div id="w1" class="input-group select-from-group col-md-8">
<input type="hidden" id="org-parent_id"
class="form-control select-from-target"
name="Org[parent]" value="#current_value#"
data-dialog="w0" data-maxoccurs="1" data-minoccurs="0"
data-ajax-url="/org/selectfrom"
data-ajax-data="{"s":336,"d":345,"c":336}"
data-map="[]"
/>
<div class="select-from-wrapper">
<input type="text" id="org-parent_name" name="Org[parent]_name" value="#name_of_the_current_value#" disabled="disabled"
class="form-control select-from-name"
/>
<div class="select-from-overlay"/>
</div>
<span class="input-group-btn select-from-select">
<button type="button" class="btn btn_primary">
<span class="glyphicon glyphicon-triangle-bottom"></span>
</button>
</span>
<span class="input-group-btn select-from-clear">
<button type="button" class="btn">
<span class="glyphicon glyphicon-remove"></span>
</button>
</span>
</div>
Ajax 提供的内容必须返回两个或更多数据,使用 class="select-from-return" data-id="id" data-name="name" data-other="可选映射字段的其它值" Ajax 内容可以使用 class="select-from-reload" 和 data-* 字段合并可选全局数据从 select-from-block(见示例)Ajax 内容可以使用 select-from-disabled 和 select-from-current 用于着色目的(不会返回值) 返回的 id 和 name 将被复制到隐藏和名称字段,可选值将被复制到由字段映射指定的外部字段。
所需 Ajax 内容示例
<div class="select-from-block" data-reload="{'d':1, 'c':2}">
<ul>
<li class="select-from-reload" data-id="3">A reload-item</i>
<li class="select-from-return" data-id="4" data-name="Some-visible-name" data-field3="It's an extra data">Some-visible-name</li>
<li class="select-from-disabled">A non-selectable item</li>
<li class="select-from-current">Current value (not selectable)</li>
</ul>
</div>
在 kartik\detail\DetailView 中的使用示例
[
'attribute' => 'org',
'value' => ($org_name = ArrayHelper::getValue($model->org0, 'name')),
'type' => DetailView::INPUT_WIDGET,
'widgetOptions' => [
'class' => SelectFromWidget::className(),
'title' => 'Please select an owner department...',
'options' => ['class'=>'input-sm'], // html options for all input elements
'nameOptions' => ['placeholder'=>'Select...', 'class'=>'input-sm'], // html options for name input
'nameValue' => $org_name,
'ajax' => Url::to(['/org/selectfrom/']),
'data' => ['s'=>$model->parent, 'c'=>$model->parent],
'ajaxOptions' => ['timeout' => 6000],
],
],
许可证
版权(c)2017,Uherkovich Péter
uhisoft.hu
版权所有。
"uhi67/selectfrom" 根据 GNU 通用公共许可证 v3 许可
本程序是自由软件:您可以自由分发和/或修改它,前提是您遵守自由软件基金会发布的 GNU 通用公共许可证的条款,即许可证的第 3 版,或者(根据您的选择)许可证的任何后续版本。
本程序是根据希望它对您有用的原则分发的,但不提供任何保证;甚至没有关于其适销性或适用于特定目的的暗示保证。有关详细信息,请参阅 GNU 通用公共许可证。
您应该已经收到了与该程序一起提供的 GNU 通用公共许可证副本。如果没有,请参阅 https://gnu.ac.cn/licenses/。有关详细信息,请参阅捆绑的 LICENSE
文件。