2017-06-26 6 views
1

私はyiiの従属ドロップダウンに取り組んでいますが、私は選択した教員に応じて部署との自動ロードを行いたいと思います。コードは、ドロップダウンがその下のドロップダウンではなく、自分自身を更新していることを除いてほとんど機能します。どうすればそれらを正しく更新できますか?それはここで、神に感謝、部門とコースの従属ドロップダウン

public function actionloaddepartment() 
{ 
$data=Department::model()->findAll('faculty_id=:faculty_id', 
array(':faculty_id'=>(int) $_POST['faculty_id'])); 

$data=CHtml::listData($data,'id','department_name'); 

echo "<option value=''>Select Department</option>"; 
foreach($data as $value=>$department_name) 
echo CHtml::tag('option', array('value'=>$value),CHtml::encode($department_name),true); 
    } 


public function actionloadcourses() 

    { 

$data=Courses::model()->findAll('department_id=:department_id', 
array(':department_id'=>(int) $_POST['department_id'])); 

$data=CHtml::listData($data,'id','course_name'); 

echo "<option value=''>Select course</option>"; 
foreach($data as $value=>$course_name) 
echo CHtml::tag('option', array('value'=>$value),CHtml::encode($course_name),true); 

    } 

答えて

0

はそう、私は修正を得ることができた:

 `<div class="row">` 
     <?php echo $form->labelEx($model,'faculty_id'); ?> 
     <?php echo $form->dropDownList($model,'faculty_id', 
     CHtml::listData(Faculty::model()->findAll(),'id','faculty_name'), 

    array(
    'prompt'=>'Select Faculty', 
    'ajax' => array(
    'type'=>'POST', 
    'url'=>Yii::app()->createUrl('site/loaddepartment'), 
    'update'=>'#NewUser_faculty_id', 
    'data'=>array('faculty_id'=>'js:this.value'),))); 
    ?> 
    <?php echo $form->error($model,'faculty_id'); ?> 
    </div> 

    <div class="row"> 
    <?php echo $form->labelEx($model,'department_id'); ?> 
    <?php echo $form->dropDownList($model,'department_id', 
     CHtml::listData(Department::model()->findAll(),'id','department_name'), 
     array(
    'prompt'=>'Select Department', 
    'ajax' => array(
    'type'=>'POST', 
    'url'=>Yii::app()->createUrl('site/loadcourses'), 
    'update'=>'#NewUser_department_id', 
    'data'=>array('department_id'=>'js:this.value'),))); 



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

<div class="row"> 
    <?php echo $form->labelEx($model,'course_id'); ?> 
    <?php echo CHtml::dropDownList('department_name','', array(), array(
    'prompt'=>'Select Course' 

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


<div class="row buttons"> 
    <?php echo CHtml::submitButton('Submit'); ?> 
</div> 

<?php $this->endWidget(); ?> 

これはコントローラである:

これは ビュー/サイト/ NEWUSERです誰もが必要とする可能性があります。

これは新しい/ views/site/newuserです:

<?php echo $form->errorSummary($model); ?> 

<div class="row"> 
    <?php echo $form->labelEx($model,'first_name'); ?> 
    <?php echo $form->textField($model,'first_name'); ?> 
    <?php echo $form->error($model,'first_name'); ?> 
</div> 

<div class="row"> 
    <?php echo $form->labelEx($model,'last_name'); ?> 
    <?php echo $form->textField($model,'last_name'); ?> 
    <?php echo $form->error($model,'last_name'); ?> 
</div> 

<div class="row"> 
    <?php echo $form->labelEx($model,'email'); ?> 
    <?php echo $form->textField($model,'email'); ?> 
    <?php echo $form->error($model,'email'); ?> 
</div> 

<div class="row"> 
    <?php echo $form->labelEx($model,'faculty_id'); ?> 
    <?php echo $form->dropDownList($model,'faculty_id', 
     CHtml::listData(Faculty::model()->findAll(),'id','faculty_name'), 

    array(
    'prompt'=>'Select Faculty', 
    'ajax' => array(
    'type'=>'POST', 
    'url'=>Yii::app()->createUrl('site/loaddepartment'), 
    'update'=>'#department_id', 

    'data'=>array('faculty_id'=>'js:this.value' 
    ), 
    ))); 
    ?> 
     <?php echo $form->error($model,'faculty_id'); ?> 
</div> 

<div class="row"> 
    <?php echo $form->labelEx($model,'department_id'); ?> 
    <?php echo CHtml::dropDownList('department_id','', array(), 

     array(

    'ajax' => array(
    'type'=>'POST', 
    'url'=>Yii::app()->createUrl('site/loadcourses'), 
    'update'=>'#course_id', 

    'data'=>array('department_id'=>'js:this.value' 
    ), 
    ))) 


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

<div class="row"> 
    <?php echo $form->labelEx($model,'course_id'); ?> 
    <?php echo CHtml::dropDownList('course_id','', array() 

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


<div class="row buttons"> 
    <?php echo CHtml::submitButton('Submit'); ?> 
</div> 

これは新しいコントローラです:

public function actionloaddepartment() 
{ 
$data=Department::model()->findAll('faculty_id=:faculty_id', 
array(':faculty_id'=>(int) $_POST['faculty_id'])); 

$data=CHtml::listData($data,'id','department_name'); 


    foreach($data as $value=>$department_name) 

    echo CHtml::tag('option', array('value'=>$value),CHtml::encode($department_name),true); 
    } 


     public function actionloadcourses() 
     { 
     $data=Courses::model()->findAll('department_id=:department_id', 
     array(':department_id'=>(int) $_POST['department_id'])); 

     $data=CHtml::listData($data,'id','course_name'); 


    foreach($data as $value=>$course_name) 
    echo CHtml::tag('option', array('value'=>$value),CHtml::encode($course_name),true); 
    }