【问题标题】:Yii2 Autocomplete : Save the ID instead of valueYii2 自动完成:保存 ID 而不是值
【发布时间】:2014-10-31 17:36:02
【问题描述】:

我有一个名为 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 yii-extensions yii2


【解决方案1】:

这可以通过隐藏字段来解决。我在这里使用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')?>

希望对您有所帮助!

【讨论】:

  • 这里的#model-input 和 ui.item.id 是什么?无法为我获取这些值
  • @Nishank #model-input 是隐藏输入字段的id,ui.item.id 是选中值的id。
  • 我有一个数组,但是当把它放在源代码中时,它不起作用,但是在打印它!它的工作完美
  • @Nishank 确保您的数组包含每个元素的值、标签和 ID!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-11
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 2014-06-06
  • 2012-06-08
  • 1970-01-01
相关资源
最近更新 更多