我在Yii中有CActiveForm,我在这里显示了一个下拉列表和ckeditor消息框。当我选择下拉列出项目中的任何一个时,该名称应显示在消息框中。(即,在事件/选择下拉列表时它(所选项目的名称)也应显示在消息框中)。在Yii有没有办法做到这一点。请帮忙实现这个目标? 以下代码位于protected / views / form
下 <?php echo CHtml::activedropDownList( ScriptQuestion::model(),'crm_base_contact_form_field_id',$select_field); ?>
<?php echo $form->textArea($model, 'message', array('id'=>'question_editor','maxlength'=>508, )); ?>
<script src="<?php echo Yii::app()->baseUrl.'/assets/ckeditor/ckeditor.js'; ?>"></script>
<script type="text/javascript">
CKEDITOR.replace( 'question_editor', { toolbar:'MA', height:'100px',width: '700px' } );
</script>
答案 0 :(得分:0)
如果我理解正确,您可以创建CHtml::textfield
并在下拉列表ajax上更新文本字段。
从此link:
首先,您可以创建国家/地区下拉列表并调用ajax
<?php
echo CHtml::dropDownList('country_name', '', CHtml::listData(Country::model()->findAll('status!="2"'), 'id', 'venue_name'), array(
'id' => 'send_venue',
'prompt' => 'Select Venue',
'class' => 'col_165',
'ajax' => array(
'type' => 'POST',
'url' => CController::createUrl('Getprovince'),
'update' => '#county_name',
'data' => array('county_id' => 'js:this.value'),
)));
?>
并创建div
<div id="#county_name"></div>
然后在控制器上创建Getprovince函数
public function actionGetprovince($id){
$county_id=$_POST['county_id'];
$data=Provinces::model()->findAll("county_id='".$county_id."' AND status='1'");
$data=CHtml::listData($data,'id','provinces_name');
echo "<option value=''>Select Event</option>";
foreach($data as $value=>$event_name){
echo CHtml::tag('option', array('value'=>$value),CHtml::encode($event_name),true);
}
}
我希望这会有所帮助。
答案 1 :(得分:0)
以下代码有助于为我归档此概念。
将以下代码放在CActiveForm小部件
中的protected / views / forms中 <?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();
var selected = $("#question_editor").val(data);
CKEDITOR.instances.question_editor.setData(selected);
} ',
'error'=> 'function(){alert("AJAX call error..!!!!!!!!!!");}'
),
)
); ?>
<?php echo $form->textArea($model, 'message', array('id'=>'question_editor','maxlength'=>508, )); ?>
<script type="text/javascript">
CKEDITOR.replace( 'question_editor', { toolbar:'MA', height:'100px',width: '700px' } );
</script>
这是控制器操作:
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 CJSON::encode($result);
echo "%".$result."%";
$this->performAjaxValidation($model);
}