在Yii中使用AJAX ASK ::解析函数结果到文本字段

时间:2016-03-23 15:11:13

标签: php ajax yii

我有一个下拉列表和一个文本字段。 如果dropdownlist的值发生变化,我想在控制器中调用一个动作并将结果解析为textfield值。 我怎么能这样做?

这是我的观点:



echo TbHtml::dropDownList('isr[setting_merit_demerit_id]', $isr['setting_merit_demerit_id'], $this->getMeritList(), 
array('class'=>'span4',  // 'onchange' => 'generateNumber();', 
        'ajax' => array(
                'type'=>'POST',
                'url'=>CController::createUrl('getMeritDemeritStatus'), 
                // 'success' =>'js:function(result){$("#tes").val(result).change();}', <--- WHAT SHOULD I PUT HERE?
                'data' => array('setting_merit_demerit_id' => 'js:this.value'),
                
                )
        )
); 

echo TbHtml::textField('isr[show_in_reportcard]',$isr['show_in_reportcard'], array('class'=>'span1', 'id'=>'tes'));
&#13;
&#13;
&#13;

这是我的控制器:

&#13;
&#13;
function actionGetMeritDemeritStatus(){
        $setting_merit_demerit_id = $_POST['setting_merit_demerit_id'];
        $model= SettingMeritDemeritM::model()->findByPk($id);
        
        return $model->status;

}
&#13;
&#13;
&#13;

抱歉我的英文不好..谢谢

1 个答案:

答案 0 :(得分:0)

您的第一个问题是您正在发送AJAX请求并调用仅返回模型的函数。你必须json_encode返回值,然后回显它。在接收端,您必须在js:success中解析结果,然后使用该对象并将其属性指定为文本字段的值。 希望它有所帮助。