setDebtFormHandlers(); \$('#person-name').on('typeahead:selected', function(object, data) { \$('#person-id').val(data['id']); \$('#person-form').submit(); }); \$('#person-form').on('submit', function(event) { \$.pjax.submit(event, '#person-debt'); return false; }); \$('#person-debt').on('pjax:complete', function() { setDebtFormHandlers(); }); JS; $this->registerJs($script, View::POS_READY); $personEngine = new Bloodhound(['name' => 'personEngine', 'clientOptions' => ['limit' => 10, 'datumTokenizer' => new \yii\web\JsExpression("Bloodhound.tokenizers.obj.whitespace('name')"), 'queryTokenizer' => new \yii\web\JsExpression("Bloodhound.tokenizers.whitespace"), 'remote' => ['url' => Url::to(['/api/autocomplete/person', 'query' => 'QRY']), 'wildcard' => 'QRY']]]); echo Html::beginForm([''], 'get', ['id' => 'person-form', 'autocomplete' => 'off']); echo Html::hiddenInput('id', isset($person) ? $person->person_id : null, ['id' => 'person-id']); echo TypeAhead::widget(['value' => isset($person) ? $person->fullName : null, 'id' => 'person-name', 'name' => 'person', 'options' => ['class' => 'form-control', 'type' => 'search', 'placeholder' => 'Введите ФИО', 'tabindex' => 4], 'engines' => [$personEngine], 'clientOptions' => ['highlight' => true, 'minLength' => 1], 'dataSets' => [['name' => 'street', 'displayKey' => 'value', 'source' => $personEngine->getAdapterScript()]]]); echo Html::endForm(); Pjax::begin(['id' => 'person-debt']); if (isset($person)) { $newItem = $this->render('_form_debt', ['model' => $newDebt]); if (empty($person->debts)) { echo Html::tag('div', $newItem, ['class' => 'row']); } else { echo ListView::widget(['dataProvider' => new ArrayDataProvider(['allModels' => $person->debts, 'pagination' => false]), 'layout' => "<div class=\"row\">" . $newItem . "{items}</div>\n", 'itemOptions' => ['class' => 'item'], 'itemView' => function ($model, $key, $index, $widget) { return $this->render('_form_debt', ['model' => $model]); }]); } }
<?php use common\widgets\iconUpload\IconUpload; use dosamigos\typeahead\Bloodhound; use dosamigos\typeahead\TypeAhead; use yii\helpers\Html; use yii\helpers\Url; use yii\widgets\ActiveForm; /* @var $this yii\web\View */ /* @var $model app\modules\topic\models\Tag */ /* @var $form yii\widgets\ActiveForm */ $engine = new Bloodhound(['name' => 'countriesEngine', 'clientOptions' => ['datumTokenizer' => new \yii\web\JsExpression("Bloodhound.tokenizers.obj.whitespace('name')"), 'queryTokenizer' => new \yii\web\JsExpression("Bloodhound.tokenizers.whitespace"), 'remote' => ['url' => Url::to(['/topic/tag/autocomplete', 'query' => 'QRY']), 'wildcard' => 'QRY']]]); ?> <div class="tag-form"> <?php $form = ActiveForm::begin(); ?> <?php echo $form->field($model, 'name')->textInput(['maxlength' => true]); ?> <?php echo IconUpload::widget(['model' => $model, 'hiddenInputId' => '#tag-icon', 'uploadUrl' => Url::to(['/api/file/upload', 'fileparam' => 'icon', 'access-token' => Yii::$app->user->identity->access_token])]); ?> <?php echo $form->field($model, 'icon')->label(false)->hiddenInput(); ?>