Php Yii2自动完成:保存ID而不是值
我有一个名为datalist的数组列表,其中包含id为的公司名称。当我将其与typeahead小部件一起使用时,它会使用变量coSearch(输入id)捕获公司的值。但我想显示公司列表,当选中时,它必须在变量中给出该id的值。从三天开始我就被这个问题弄得一团糟。请帮我解决。 下面是包含小部件的activeform的代码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
<?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!在中获取更多信息