Yii Framework Forum: [Resolvido] Executar Função Especifica No Controller - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

[Resolvido] Executar Função Especifica No Controller Rate Topic: -----

#1 User is offline   Jjunior 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 37
  • Joined: 07-November 12

Posted 21 November 2012 - 03:51 PM

Boa tarde

Como fazer com que um form modal execute uma função dentro de um controller. Tenho uma função AddItem, mas ele sempre executa a função create.
0

#2 User is offline   Rac 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 06-September 12
  • Location:Curitiba - Brazil

Posted 22 November 2012 - 05:56 AM

View PostJjunior, on 21 November 2012 - 03:51 PM, said:

Boa tarde

Como fazer com que um form modal execute uma função dentro de um controller. Tenho uma função AddItem, mas ele sempre executa a função create.


Você deve setar qual a Action você deseja para seu formulário:
<?php 
   $form=$this->beginWidget('CActiveForm', array(
        'id'=>'form-id',
        'action' => Yii::app()->createUrl('/meuController/addItem'),  // << A url para seu metodo    
   ));
?>


Lembrando que seu método em seu Controller devera se chamar actionAddItem
0

#3 User is offline   Gustavo Gonçalves 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 40
  • Joined: 02-October 12
  • Location:Belo Horizonte, MG - Brasil

Posted 22 November 2012 - 07:02 AM

Bom dia,

Se você estiver usando um botão apenas para chamar a Function no seu Controller, fazer algum processamento e devolver informações para sua página, sem dar Submit no Form... você pode usar o Ajax.


$this->widget('bootstrap.widgets.TbButton', array(
			'icon' => 'icon-plus',
			'size' =>'small',
			'type' => 'warning',
			'buttonType' => 'ajaxButton',
			'url' => $this->createUrl('addPgto'),
			'htmlOptions'=>array('id'=>'btn_addparcela', 'title'=>'Inserir Parcela',),
			'ajaxOptions'=>array('type'=>'POST',
    					     'success'=>'allFinePgtos', 
 					     'url' => 'js:$(this).attr("href")',
						),
		));



Trecho do código Javascript da allFinePgtos:
function allFinePgtos(data) {
	
    // Atualizando o conteúdo da DIV 
    $('#div_pgtos').html(data);
}


Dentro desta div, você pode colocar sua tabela e/ou outro componente que necessitar de atualização do Html.


No exemplo acima estou usando um componente do Bootstrap. Mas caso você esteja usando o componente do Yii, segue um exemplo:
http://yiiframework-...ton-in-yii.html
Mas existem outras formas de executar Ajax.

Aí lá no seu controller, você precisa do render_partial para atualizar sua página novamente. Nos links abaixo, tem exemplos de como deverá ficar sua função no controller.
http://yiibook.blogs...ton-in-yii.html
http://www.yiiframew...-renderpartial/

Não esqueça de que qualquer nova Function, precisa ter "autorização" no seu controller:
	public function accessRules()
	{
		return array(
			array('allow',  // allow all users to perform 'index' and 'view' actions
				'actions'=>array('index','view', ... SUAS NOVAS FUNÇÕES... ),
				'users'=>array('*'),
			),

0

#4 User is offline   Jjunior 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 37
  • Joined: 07-November 12

Posted 22 November 2012 - 01:29 PM

Obrigado
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users