无法使用 CJuiAutoComplete 自动完成其他文本字段

Cannot autocomplete other textfields using CJuiAutoComplete

我有一个包含字段 id_pegnama_pegjabatan_peg 的模型。所以这就是我想做的:

  1. 当我在文本字段中键入 id_peg
  2. 时自动提示显示 id_peg 的列表
  3. 当我 select 建议的 id_peg 时,字段 nama_pegjabatan_peg 会根据相应的 selected 值(从数据库中检索)自动完成)

我一直在尝试做第一个,我做到了。但是我卡在了第二个。

这是我所做的:

view/melaporkan.php:

              $this->widget('zii.widgets.jui.CJuiAutoComplete', array(
                    'name' => 'test1',
                    'source' => $this->createUrl('search'),
                    // additional javascript options for the autocomplete plugin
                    'options' => array(
                        'showAnim' => 'fold',
                        'select' => 'js:function(event, ui) {  
                              $('#nama_peg').val(ui.item.nama_peg);
                              $('#jabatan_peg').val(ui.item.jabatan_peg); 
                        }',
                    ),                            
                ));

controllers/sitecontroller.php

public function actionSearch() {
    $res = array(0 => array('id' => 1, 'value' => "id_peg"), 1 => array('id' => 2, 'value' => "jabatan_peg"), 2 => array('id' => 2, 'value' => "nama_peg"));
    if (isset($_GET['term'])) {
        $qtxt = "SELECT id_peg FROM pegawai WHERE id_peg LIKE :id_peg";
        $command = Yii::app()->db->createCommand($qtxt);
        $command->bindValue(":id_peg", '%' . $_GET['term'] . '%', PDO::PARAM_STR);
        $res = $command->queryColumn();

    }
    echo CJSON::encode($res);
    Yii::app()->end();
}

它所做的只是对 id_peg 的自动建议。当点击一些随机 id_peg 时,nama_pegjabatan_peg 仍然是空的。

我做错了什么?

实际上问题出在 controllers/sitecontroller.php 页面。 您仅以 JSON 格式发送 id_peg,但试图以 ui.item.jabatan_peg.

格式发送

最好将您的值发送为 [{"id":"Caprimulgus europaeus","value":"European Nightjar"}] 模式 并在 select 函数中获取值 ui.item.value。