uhi67/selectfrom

Yii2 的对话框选择输入小部件

安装: 12

依赖: 0

建议: 0

安全: 0

类型:yii2-extension

1.1.0.1 2017-05-24 08:56 UTC

This package is auto-updated.

Last update: 2024-09-18 17:32:41 UTC


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="{&quot;s&quot;:336,&quot;d&quot;:345,&quot;c&quot;: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 文件。