我的视图中有一个文本字段,我想将文本框的值传递给控制器,但我不知道如何做到。
我试过在谷歌上搜索它,但它只提供了有关将数据从conntroller传递到yii中的视图的ide,所以请举一个使用ajax的例子。
按照以下步骤操作:
形式:
<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中写的是'url'=>$this->createUrl('recieveValue'),
。转到控制器并将操作名称写为actionRecieveValue
,只需在recieveValue
之前添加操作即可。现在转到方法accessRules
中控制器的顶部,并允许它recieveValue
进入数组。现在通过firebug控制台进行检查。在文本框中键入内容,然后将鼠标从文本框中移出。您会发现您的文本框值将被接收到控制器中。