我有一个名为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,
]
]
]);
?>
答案 0 :(得分:4)
这可以通过隐藏字段来解决。我在这里使用autocomplete
<?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')?>
希望这有帮助!