微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-如何在没有Yii刷新页面的情况下更新dropdownlist的textfield onchange?

我有一个Yii下拉列表和文本字段,当我选择下拉列表项时,此名称显示在文本字段中.我尝试使用ajax与这个概念,但它仅在页面刷新后更新.我在这里粘贴了代码,请浏览并建议我如何设置
立即选择下拉列表项后的文本字段.

   The following code resides protected/views/form

    <td>    
    <?PHP echo $form->labelEx( ScriptQuestion::model(),'Field'); ?></td><td>
    <?PHP echo CHtml::activedropDownList( ScriptQuestion::model(),'crm_base_contact_form_field_id',$select_field,       
                array(
                'id' => 'send_bcfield',
                'class' => 'col_165',
                'ajax' => array(
                    'type' => 'POST',
                    'url' => CController::createUrl('displayMessage'),                                                               
                    'update' => '#question_editor',
                    'data' => array('bcfield' => 'js:this.value'),
                    'success'=> 'function(data) {$("#question_editor").empty();
                            $("#question_editor").val(data);
                            } ',                    
                    ))      
    ); ?>               
    </td>
         <td>
        <?PHP echo $form->textArea($model, 'message', array('id'=>'question_editor','maxlength'=>508, )); ?>
           </td>

这是控制器动作:

    public function actiondisplayMessage(){ 
$q = $_POST['bcfield'];
$model=ScriptQuestion::model()->findAll();  
$sql = "SELECT name  FROM crm_field WHERE crm_field_id=". $q ;
    $command = Yii::app()->db->createCommand($sql);
    $result= $command->queryScalar(); 
    echo "%".$result."%";
    $this->performAjaxValidation($model);       
    }

解决方法:

无需Ajax,这只是一个简单的javascript / jQuery.

只需执行此操作(用您的ckeditor实例名称替换editor1):

<script>
$("#send_bcfield").change(function(){
   var selected = $("#send_bcfield option:selected").val();
   CKEDITOR.instances.editor1.setData(selected);
});
</script>

或将您的代码更改为此:

<?PHP
echo CHtml::activedropDownList(ScriptQuestion::model(), 'crm_base_contact_form_field_id', $select_field, array(
    'id' => 'send_bcfield',
    'class' => 'col_165',
    'onchange' => '$("#send_bcfield").change(function(){
                    var selected = $("#send_bcfield option:selected").val();
                    CKEDITOR.instances.editor1.setData(selected);
                    });',
    )
);
?>

更新:根据您在我的答案下方的评论,我将代码更改为更改ckeditor值.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐