两个CJuiAutoComplete工作正常,分开。但不是当放在一起

时间:2015-03-31 04:08:20

标签: php yii autocomplete jquery-ui-autocomplete

如果我只使用一个CJuiAutoComplete,那就完全没问题了。但它没有添加另一个(来自不同的表)。 原始观点如下:

<?php
                $this->widget('zii.widgets.jui.CJuiAutoComplete', array(
                    'name' => 'myIdPeg',
                    //'value' => $model->id_peg,
                    'sourceUrl' => $this->createUrl('search'),
                    // additional javascript options for the autocomplete plugin
                    'options' => array(
                        'minLength' => '1',
                        'showAnim' => 'fold',
                        'focus' => 'js:function( event, ui ) {
                            $( "#myIdPeg" ).val( ui.item.id_peg );
                            return false;
                        }',
                        'select' => 'js:function(event, ui) { 
                            $("#myIdPeg").val(ui.item.id_peg);
                            $("#myNamaPeg").val(ui.item.nama_peg);
                            $("#myJabatanPeg").val(ui.item.jabatan_peg); 
                            return false;
                        }',
                    ),
                    'htmlOptions' => array(
                        'style' => 'width: 98%',
                        'placeholder' => 'NIP Baru'
                    ),
                ));
                Yii::app()->clientScript->registerScript('input', '
                    $("#myIdPeg").data("autocomplete")._renderItem = function( ul, item ) {
                    return $( "<li></li>" )
                    .data( "item.autocomplete", item )
                    .append( "<a>"+item.id_peg + " - " + item.nama_peg+"</a>")
                    .appendTo( ul );
                    };');
                ?>

控制器:

public function actionSearch() {
    $res = array();
    if (isset($_GET['term'])) {
        $qtxt = "SELECT 
                DISTINCT 
                bc.id_peg as id_peg, 
                bc.nama_peg as nama_peg, 
                bc.jabatan_peg as jabatan_peg, 
                CONCAT (bc.id_peg, ' - ', bc.nama_peg) as id_nama_peg 
                FROM pegawai bc
                WHERE bc.id_peg LIKE :qterm 
                ORDER BY bc.id_peg, bc.nama_peg ASC";
        $command = Yii::app()->db->createCommand($qtxt);
        $command->bindValue(":qterm", '%' . $_GET['term'] . '%', PDO::PARAM_STR);
        //$res = $command->queryColumn();
        $res = $command->queryAll();
    }

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

但是,当我将其添加到视图中时:

<?php
                $this->widget('zii.widgets.jui.CJuiAutoComplete', array(
                    'name' => 'mySubKegiatan',                       
                    'sourceUrl' => $this->createUrl('searchkeg'),                        
                    'options' => array(
                        'minLength' => '1',
                        'showAnim' => 'fold',
                        'focus' => 'js:function( event, ui ) {
                            $( "#mySubKegiatan" ).val( ui.item.sub_kegiatan );
                            return false;
                        }',
                        'select' => 'js:function(event, ui) { 
                            $("#mySubKegiatan").val(ui.item.sub_kegiatan);
                            $("#myBidang").val(ui.item.bidang);
                            $("#mySeksi").val(ui.item.seksi); 
                            $("#myKegiatan").val(ui.item.kegiatan); 
                            return false;
                        }',
                    ),
                    'htmlOptions' => array(
                        'style' => 'width: 98%',
                        'placeholder' => 'Nama Sub Kegiatan'
                    ),
                ));
                Yii::app()->clientScript->registerScript('input', '
                    $("#mySubKegiatan").data("autocomplete")._renderItem = function( ul, item ) {
                    return $( "<li></li>" )
                    .data( "item.autocomplete", item )
                    .append( "<a>"+item.sub_kegiatan + " - " + item.kegiatan+"</a>")
                    .appendTo( ul );
                    };');
                ?> 

这是控制器:

public function actionSearchkeg() {
    $res = array();
    if (isset($_GET['term'])) {
        $qtxt = "SELECT 
                DISTINCT 
                bc.kode_master as kode_master,
                bc.kegiatan as kegiatan, 
                bc.sub_kegiatan as sub_kegiatan, 
                bc.bidang as bidang, 
                bc.seksi as seksi,
                CONCAT (bc.sub_kegiatan, ' - ', bc.kegiatan) as sub_nama_keg 
                FROM kegiatan bc
                WHERE bc.sub_kegiatan LIKE :qterm 
                ORDER BY bc.kegiatan, bc.kode_master ASC";
        $command = Yii::app()->db->createCommand($qtxt);
        $command->bindValue(":qterm", '%' . $_GET['term'] . '%', PDO::PARAM_STR);
        //$res = $command->queryColumn();
        $res = $command->queryAll();
    }

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

它们都不起作用。我试图通过删除第一个CJuiAutoComplete来跟踪问题。结果是我后来加入的第二个。

所以问题是他们分开工作正常。但是当他们放在一起时他们不会。 这是为什么?我错过了什么?谢谢。 我很确定我已经设置了不同的唯一参数here。 真的希望在这里得到一些帮助。感谢。

0 个答案:

没有答案