2013-11-24 40 views
1

我在我的視圖中有一個文本字段,我想將文本框的值傳遞給控制器​​,但我不知道該怎麼做。傳遞數據從視圖到控制器在yii

我試過使用Google搜索它,但它只給出了從控制器傳遞數據到ide中查看的ide,所以請舉個例子來說明如何使用ajax。

+2

使用ajax,或者通過指定表單的動作來進行表單提交。 –

+0

請顯示代碼 –

+0

這將幫助你http://api.jquery.com/jQuery.ajax/ –

回答

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我在阿賈克斯的網址寫爲'url'=>$this->createUrl('recieveValue'),。轉到控制器並將操作名稱寫爲actionRecieveValue只需在recieveValue之前添加操作即可。現在轉到accessRules方法中的控制器頂部,並將其recieveValue放入數組中。現在檢查螢火蟲控制檯。在文本框中鍵入內容並從文本框中移動鼠標。你會發現你的文本框的值將被接收到控制器中。

相關問題