Php Yii2自动完成:保存ID而不是值

Php Yii2自动完成:保存ID而不是值,php,yii-extensions,yii2,Php,Yii Extensions,Yii2,我有一个名为datalist的数组列表,其中包含id为的公司名称。当我将其与typeahead小部件一起使用时,它会使用变量coSearch(输入id)捕获公司的值。但我想显示公司列表,当选中时,它必须在变量中给出该id的值。从三天开始我就被这个问题弄得一团糟。请帮我解决。 下面是包含小部件的activeform的代码 <?php $form = ActiveForm::begin([ 'action' => ['search'], 'method' =&g

我有一个名为datalist的数组列表,其中包含id为的公司名称。当我将其与typeahead小部件一起使用时,它会使用变量coSearch(输入id)捕获公司的值。但我想显示公司列表,当选中时,它必须在变量中给出该id的值。从三天开始我就被这个问题弄得一团糟。请帮我解决。 下面是包含小部件的activeform的代码

<?php 
    $form = ActiveForm::begin([
    'action' => ['search'],
    'method' => 'get',
    ]); 
    $dataList=ArrayHelper::map($companies, 'id', 'name');
    echo Typeahead::widget([
    'model' => $companySearched, 
    'name'=>'coSearch',
    'options' => ['placeholder' => 'Search  company','id'=>'searchCompany1','class' => 'form-      control','value'=>'1'],
    'pluginOptions' => ['highlight'=>true],
    'dataset' => [
        [
            'local' =>  $dataList,
            'limit' => 10,
        ]
    ]
]);


?>

这可以通过一个隐藏字段来解决。我在这里使用
自动完成

<?php
use yii\web\JsExpression;
use yii\jui\AutoComplete;

$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 ) {
    $('#model-company').val(ui.item.id);
 }")],
 ]);
 ?>

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


希望这有帮助

您可以使用jquery自动完成。这很简单。这里的#模型输入和ui.item.id是什么??无法获取的这些值me@Nishank#model input是隐藏输入字段的id,ui.item.id是所选值的id。我有一个数组,但在将其放入源代码时。它不起作用,但在打印时!!它起作用了perfect@Nishank确保数组包含每个元素的值、标签和id!在中获取更多信息