自动完成在yii2 [英] Autocomplete in yii2

查看:298
本文介绍了自动完成在yii2的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Yii2我希望我的输入字段之一是自动完成的,当用户开始type.Below是我的code,它使用瑞自动完成

In Yii2 I want one of my input field to be autocomplete when user starts to type.Below is my code which uses Jui Autocomplete.

 <?php
    $items= ArrayHelper::map(Company::find()->all(), 'c_id', 'name');
    echo AutoComplete::widget([
    'model' => $model,
    'attribute' => 'company',
    'clientOptions' => [
    'source' => $items,
     ],
    ]);?>

这是不是working.When我印我的数组,我得到了像

This is not working.When i printed my array, i got like

 Array ( [1] => abc [2] => xyz [4] => pqr )

我得到它的工作时,我手动设置像

I got it working when i manually set like

 $items=['abc','xyz','pqr'];

究其原因可能是我的 C_ID的不是有序的?但我想获得 C_ID 值提交!不知道如何解决这个问题?

The reason may be my c_id's are not ordered?But i want to get the c_id value to be submitted!Any idea how to fix this?

推荐答案

这可以用一个隐藏字段input.Hope的帮助下,这将帮助别人解决了!

This can be solved with the help of a hidden field input.Hope this will help somebody!

    <?php
    use yii\web\JsExpression;

    $data = Company::find()
    ->select(['name as value', 'name as  label','c_id as id'])
    ->asArray()
    ->all();

    echo AutoComplete::widget([
    'name' => 'Company',
    'id' => 'ddd',
    'clientOptions' => [
    'source' => $data,
    'autoFill'=>true,
    'minLength'=>'4',
    'select' => new JsExpression("function( event, ui ) {
        $('#user-company').val(ui.item.id);
     }")],
     ]);
     ?>

    <?= Html::activeHiddenInput($model, 'company')?>

这篇关于自动完成在yii2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆