2013-11-24 3 views
1

У меня есть текстовое поле в моем представлении, и я хочу передать значение текстового поля контроллеру, но я не знаю, как это сделать.Передача данных из представления в контроллер в yii

Я пробовал использовать его в Google, но он дает только информацию о передаче данных из conntroller для просмотра в yii, поэтому, пожалуйста, дайте пример с помощью 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('@'), 
), 

Объяснение:

Здесь текстовое поле идентификатор order_id, действие контроллера recieveValue, что я написал в АЯКС URL в 'url'=>$this->createUrl('recieveValue'),. Перейдите к контроллеру и напишите имя действия как actionRecieveValue, просто добавьте действие до recieveValue. Теперь перейдите в верхнюю часть контроллера по методу accessRules и разрешите ему встраивать recieveValue. Теперь проверьте консоль firebug. Введите что-то в текстовое поле и переместите мышь из текстового поля. Вы обнаружите, что ваше текстовое поле будет получено в контроллер.

Смежные вопросы