我的视图中有一个文本字段,我想将文本框的值传递给控制器,但我不知道该怎么做。
我已经尝试使用Google搜索,但它只提供了将数据从conntroller传递到yii视图的ide,所以请举例说明使用ajax执行此操作。
答案 0 :(得分:1)
按照以下步骤操作:
形式:
<div class="form-group">
<?php echo $form->labelEx($model,'order_id', array('class' => 'control-label col-lg-4')); ?>
<div class="col-lg-8">
<?php echo $form->textField($model,'order_id',array('class' => 'form-control',
'ajax' =>
array('type'=>'POST',
'url'=>$this->createUrl('recieveValue'), // write in controller this action
'update'=>'#price',
'data'=>array('order_id'=>'js:this.value'),
)
)); ?>
</div>
<?php echo $form->error($model,'order_id'); ?>
在控制器中:
public function actionRecieveValue(){
echo $_POST['order_id'];
}
在同一个控制器的顶部:
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions'=>array('create','update','recieveValue'),
'users'=>array('@'),
),
说明:
此处文字字段ID为order_id
,控制器操作为recieveValue
我在ajax网址中写为'url'=>$this->createUrl('recieveValue'),
的内容。转到控制器并将操作名称写为actionRecieveValue
,只需在recieveValue
之前添加操作即可。现在转到方法accessRules
中控制器的顶部,并将其recieveValue
放入数组中。现在通过firebug控制台查看。在文本框中键入内容并从文本框中移动鼠标。您会发现您的文本框值将被收到控制器中。