将数据从视图传递到yii中的控制器


Passing data from view to controller in yii

我的视图中有一个文本字段,我想将文本框的值传递给控制器,但我不知道如何做到。

我试过在谷歌上搜索它,但它只提供了有关将数据从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控制台进行检查。在文本框中键入内容,然后将鼠标从文本框中移出。您会发现您的文本框值将被接收到控制器中。