視圖
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'sendmessage-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
)); ?>
<div class="row">
<?php echo $form->labelEx($model,'receiverType'); ?>
<?php echo $form->dropDownList($model,'receiverType',array(1 => 'type1' ,2=>'type2'),
array(
'empty'=>"",
'value'=>'1',
'ajax' => array(
'type'=>'POST',
'url'=>CController::createUrl('site/type'),
'data'=>array('type'=>'js:this.value'),
'dataType'=>'html',
'update' => '#receiver',
))); ?>
<?php echo $form->error($model,'receiverType'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'receiver'); ?>
<?php echo CHtml::dropDownList('receiver',$model->receiver,array()); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'subject'); ?>
<?php echo $form->textField($model,'subject',array('size'=>60,'maxlength'=>128)); ?>
<?php echo $form->error($model,'subject'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'body'); ?>
<?php echo $form->textArea($model,'body',array('rows'=>10, 'cols'=>100,'style'=>'width: 60%')); ?>
<?php echo $form->error($model,'body'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton('ارسال'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
控制器
public function actionType()
{
$Type=$_POST["type"];
$contact=Yii::app()->db->createCommand()
->select('id,email')
->from('contact')
->order('parent.email')
->queryAll();
$data=CHtml::listData($contact,'id','email');
if (!empty($data)) { echo '<option value="">choose...</option>'; }
foreach($data as $value=>$name) {
echo CHtml::tag('option',
array('value'=>$value),CHtml::encode($name),true);
}
}
它工作正常,但是當我改變這一行: 了CHtml :: DROPDOWNLIST( '接收器', $模型 - >接收機,陣列()); 對此: $ form-> dropDownList($ model,'receiver',array()); 它不再工作。 我該如何解決這個問題?
你能更具體什麼「不再工作」對你意味着什麼?是否有錯誤訊息?是不是下拉式渲染? – DaSourcerer
當我選擇receiverType時,接收者下拉列表填充了正確的數據,在我更改該行後,接收者下拉列表保持爲空。 – user3116473
你是什麼意思,它不工作?任何錯誤? – dev1234