【问题标题】:Yii2 autocomplete no responseYii2自动完成无响应
【发布时间】:2016-02-06 00:10:24
【问题描述】:

我正在尝试将用户列表显示为邮件。这是我的代码,但没有响应

<?php
 $data = Users::find()
    ->select(['user_email as value', 'user_id as id'])
    ->asArray()
    ->all();

  echo AutoComplete::widget([
    'name' => 'user_email',
    'id' => 'ddd',
    'clientOptions' => [
    'source' => $data,
    'autoFill'=>true,
    'minLength'=>'1',
    'select' => new JsExpression("function( event, ui ) {
        $('#user_mail_1').val(ui.item.id);

     }")],
     ]);
            ?>
<?= $form->field($model, 'user_email')->HiddenInput(['id' => 'user_mail_1'])->label(false) ?>

【问题讨论】:

  • 检查浏览器控制台是否有错误。

标签: autocomplete yii2


【解决方案1】:

自动完成输入值的显示值需要使用label

所以,将user_email 设为label 如下:

<?php
 use yii\web\JsExpression;


 $data = Users::find()
         ->select(['user_email as value', 'user_id as id', 'user_email as label'])
         ->asArray()
        ->all();

 // OR try below query for get data.

 $data = (new \yii\db\Query())
        ->select(["user_email as value", "user_email as label","user_id as id"])
        ->from('users u')
        ->all();


  echo AutoComplete::widget([
    'name' => 'user_email',
    'id' => 'ddd',
    'clientOptions' => [
    'source' => $data,
    'autoFill'=>true,
    'minLength'=>'1',
    'select' => new JsExpression("function( event, ui ) {
        $('#".Html::getInputId($model, 'user_email')."').val(ui.item.id); // Html::gtInputId() get dynamic id of input field.

     }")],
     ]);
            ?>
<?= $form->field($model, 'user_email')->hiddenInput()->label(false) ?>

【讨论】:

  • 发生了什么。你能发布这个跨度吗?
  • 我已经编辑了我的ans。我添加了Query 用于从数据库获取数据。所以看看吧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-06
  • 1970-01-01
  • 2017-07-06
  • 2012-12-30
  • 1970-01-01
  • 2015-04-01
  • 1970-01-01
相关资源
最近更新 更多