2012-12-27 87 views
2

我很抱歉,如果這已經存在,但我不能得到它的工作。 我需要顯示的名稱和ID存儲在我的表中。這些名字來自其他模型(表格)。我得到的名稱和編號的時候,我檢查鉻網絡檢查員elt .. 但值不可見..但他們正在填充,當我嘗試點擊它們即將它在警報與ID ..Yii CJuiAutoComplete值沒有得到顯示

任何人都可以請幫我弄的名稱可見--thanks烏拉圭回合的幫助

我_form.php這個是這樣的:

 <div class="row"> 
     <?php echo $form->labelEx($typeModel,'benefit_type'); ?> 
     <?php 
    $this->widget('zii.widgets.jui.CJuiAutoComplete', array(
    'attribute'=>'name', 
    'model'=>$typeModel, 
    'sourceUrl'=>array('benefit/benefit_type_list'), 
    'value'=>'Please select', 
    'name'=>'name', 
    'id'=>'id', 
    'options'=>array(
     'minLength'=>'0', 
     'select'=>"js:function(event, ui) { 
    alert(ui.item.id); 
             // $('#organisation_id').val(ui.item.id); 
             }", 
    ), 
    'htmlOptions'=>array(
'id'=>'id', 
    'size'=>45, 
    'maxlength'=>45, 
    ), 
    )); ?> 

    <?php echo $form->error($typeModel,'benefit_type'); ?> 

擴展類用於獲取姓名和身份證的是:

<? class EAutoCompleteAction extends CAction 
    { 
     public $model; 
     public $attribute; 
     public $id; 
     private $results = array(); 
     public $returnVal = ''; 
     public function run() 
     { 
      if(isset($this->model) && isset($this->attribute)) { 
       $criteria = new CDbCriteria(); 
       $criteria->compare($this->attribute, $_GET['term'], true); 
       $model = new $this->model; 
       foreach($model->findAll($criteria) as $m) 
       { 
        // $this->results[] = $m->{$this->attribute}; 
        //$this->results[] = $m-<{$this->id}; 
        $this->results[] = array(
         'name' => $m->{$this->attribute}, 
          'id'=> $m->id 
        ); 



        /* $this->returnVal .= $m->getAttribute('name').'|' 
        .$m->getAttribute('id'). "\n"; */ 
       } 

      } 

      echo CJSON::encode($this->results); 
     } 
    } 
    ?> 

,並在我的控制器:

public function actions() 
    { 
     return array(
       'benefit_type_list'=>array(
         'class'=>'application.extensions.EAutoCompleteAction', 
         'model'=>'BenefitType', //My model's class name 
         'attribute'=>'name', //The attribute of the model i will search 
       ), 
     ); 

    } 

回答

1

這已經有一段時間,因爲我使用這個擴展,但它使用jQuery的自動完成,並從EAutoCompleteAction數據集可能需要:

   $this->results[] = array(
        'label' => $m->{$this->attribute}, 
        'value'=> $m->id, 
        'id'=> $m->id 
       ); 

來源:yii forums

+1

感謝您的回覆黑暗mukke。但它不是從結果數組中獲取值的問題。它與Cjuiautocomplete的問題。有些東西需要在這裏修復 – Developer