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

时间:2013-11-24 10:49:43

标签: php ajax yii view controller

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

我已经尝试使用Google搜索,但它只提供了将数据从conntroller传递到yii视图的ide,所以请举例说明使用ajax执行此操作。

1 个答案:

答案 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控制台查看。在文本框中键入内容并从文本框中移动鼠标。您会发现您的文本框值将被收到控制器中。