2016-07-20 8 views
0

こんにちは、私はyii CHTMLドロップダウンリストを使用してマルチレベル依存ドロップダウンリストを作成しようとしました。ここに私のコードは次のとおりです。php ajaxのマルチレベル依存ドロップダウンリストが機能しない(yii)

ビューOPSController.php

public function actionLoadKegiatan() 
    { 
     $data=KodePOK::model()->findAllByAttributes(array('kode_program'=>$_POST['kode_program'])); 

     $data=CHtml::listData($data,'kode_kegiatan','nama_kegiatan'); 
     foreach($data as $value=>$name) { 
       echo CHtml::tag('option', 
        array('value'=>$value),CHtml::encode($name),true); 
    } 

    } 

    public function actionLoadOutput() 
    { 
     $data=KodePOK::model()->findAllByAttributes(array(
      //'kode_program'=>$_POST['kode_program'], 
      'kode_kegiatan'=>$_POST['kode_kegiatan'] 
     )); 

     $data=CHtml::listData($data,'kode_output','nama_output'); 
     foreach($data as $value=>$name) { 
       echo CHtml::tag('option', 
        array('value'=>$value),CHtml::encode($name),true); 
     } 

    } 

<div class="row"> 
     <?php echo $form->labelEx($model,'kode_program'); ?> 
     <?php echo $form->dropDownList($model,'kode_program', 
      $list_prog,array(
      'prompt'=>'--Pilih--', 
       'ajax' => array(
          'type'=>'POST', 
          'url'=>CController::createUrl('OPS/loadKegiatan'), 
          'update'=>'#'.CHtml::activeId($model,'kode_kegiatan'), 
          'data'=>array('kode_program'=>'js:this.value',),       
      )) 

      ); ?> 

     <?php echo $form->error($model,'kode_program'); ?> 
    </div> 

    <div class="row"> 
     <?php echo $form->labelEx($model,'kode_kegiatan'); ?> 
     <?php 
     //echo $form->dropDownList($model, 'kode_kegiatan', $list_keg, array('prompt' => '--Pilih--')); 
     echo $form->dropDownList($model, 'kode_kegiatan', array(),array(
      'prompt'=>'--Pilih--', 
       'ajax' => array(
          'type'=>'POST', 
          'url'=>CController::createUrl('OPS/loadOutput'), 
          'update'=>'#'.CHtml::activeId($model,'kode_output'), 
          'data'=>array(
           'kode_kegiatan'=>'js:this.value', 
          ),      
      )));?> 
     <?php echo $form->error($model,'kode_kegiatan'); ?> 
    </div> 

    <div class="row"> 
     <?php echo $form->labelEx($model,'kode_output'); ?> 
     <?php 
     echo $form->dropDownList($model, 'kode_output',array(), array('prompt' => '--Pilih--')); 
     ?> 
     <?php echo $form->error($model,'kode_output'); ?> 
    </div> 

コントローラは、上記のコードは、エラーが表示されませんが、それは動作していない_form.php、私は知りませんなぜ。私を助けてください。ありがとうございます

答えて

0

私はこの問題を解決しました。私は追加:

echo CHtml::tag('option',array('value'=>""),"--Pilih--",true); 

それが動作します。アクションの完全なコードは次のとおりです。

public function actionLoadKegiatan() 
    { 
      $data=KodePOK::model()->findAllByAttributes(array('kode_program'=>$_POST['kode_program'])); 

      $data=CHtml::listData($data,'kode_kegiatan','nama_kegiatan'); 
      echo CHtml::tag('option',array('value'=>""),"--Pilih--",true); 
      foreach($data as $value=>$name) { 
        echo CHtml::tag('option',array('value'=>$value),CHtml::encode($name),true); 
     } 

    } 
関連する問題