Yii Framework Forum: Filtrar dados com DropDown - Yii Framework Forum

Jump to content

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

Filtrar dados com DropDown Rate Topic: -----

#1 User is offline   Junior - df9 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 416
  • Joined: 24-May 09
  • Location:Brazil

Posted 24 May 2009 - 05:33 PM

Olá, alguém tem alguma idéia de como posso implementar esta funcionalidade?

Preciso que na lista de Posts exista uma dropdown no topo contendo o status que eu desejo filtrar para exibir na grid. Por exemplo, se o usuário precisar ver somente os posts publicados atualmente ele clica no dropdown e escolhe Publicados, então a grid deve exibir somente os posts com status de publicado e assim por diante...

Não encontrei uma maneira de fazer o dropdown executar uma ação e muito menos de fazer com que a minha ação admin ou list entenda o filtro que eu desejo...

Qualquer ajuda é bem-vinda!!!
0

#2 User is offline   ricardograna 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 376
  • Joined: 31-March 09
  • Location:Manaus/AM - Brazil

Posted 26 May 2009 - 08:29 AM

Scoob, isso deve te ajudar:

http://www.yiiframew...oc/cookbook/24/

É sobre dois dropdowns dependentes, mas acho que já deve dar uma luz de como te ajudar.

Outra idéia (mais atual) é combinar essa idéia junto com Named Scopes.

Abraço!
0

#3 User is offline   tucz0 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 29-April 09

Posted 27 May 2009 - 08:42 AM

Ola scoob,

creio que vc precise fazer algo como o dropdown das extensões: http://www.yiiframew...com/extensions/.

Se for isso, veja como fazer em:
http://www.yiiframew...oc/cookbook/11/
0

#4 User is offline   ricardograna 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 376
  • Joined: 31-March 09
  • Location:Manaus/AM - Brazil

Posted 28 May 2009 - 06:56 AM

O link do tucz0 é mais indicado mesmo, para o seu caso.
0

#5 User is offline   Junior - df9 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 416
  • Joined: 24-May 09
  • Location:Brazil

Posted 31 May 2009 - 10:47 AM

OK, muito obrigado a todos, deu certinho!!!

Acabei fazendo algo assim:
<form action="<?php echo Yii::app()->baseUrl.'/post/admin';?>" method="get">
<?php echo CHtml::dropDownList('status',$status,array(0=>'Todos',1=>'Rascunhos',2=>'Publicados',3=>'Arquivados'),array('onchange'=>'javascript:document.forms[0].submit();')); ?>
</form>

Assim que a pessoa clica sobre o dropDown, o conteúdo é filtrado e atualizado

Valeu!!
0

#6 User is offline   ricardograna 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 376
  • Joined: 31-March 09
  • Location:Manaus/AM - Brazil

Posted 01 June 2009 - 02:26 PM

Hehe, eu acho que vc ainda nao entendeu bem o espirito do Yii =D

Vou explicar pelo teu codigo:
<form action="<?php echo Yii::app()->baseUrl.'/post/admin';?>" method="get">
R: Desnecessario, podia ter feito assim
<?php echo CHtml::form('','get'); ?>  --mesmo efeito e mais flexivel

<?php echo CHtml::dropDownList('status',$status,array(0=>'Todos',1=>'Rascunhos',2=>'Publicados',3=>'Arquivados'),
array('onchange'=>'javascript:document.forms[0].submit();')); ?>

R: 1) Ponha seus status dentro de uma função no model. 2) Voce está fazendo a recarga de forma 'manual'.
Deixe isso a cargo do Yii.

Faça assim:
<?php echo CHtml::dropDownList('status',$status,$post->statusList,array('empty'=>'All categories', 'submit'=>''))
</form>

O 'submit' do final faz a mesma coisa que vc está querendo.

Abraço!


0

#7 User is offline   Junior - df9 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 416
  • Joined: 24-May 09
  • Location:Brazil

Posted 07 June 2009 - 06:07 AM

é..vou levar um tempinho até me acostumar com o Yii..mas chego lá..hhe

Funciona perfeitamente!

Muito obrigado!!!


A propósito, se algum iniciante como eu encontrar este tópico por acidente e precisar fazer a mesma coisa...hehe...como ficou:

Na view admin e list
<?php echo CHtml::form('','get'); ?>
Exibir:
<?php echo CHtml::dropDownList('status',
    isset($_GET['status'])?(int)$_GET['status']:0,
    Post::getStatusOptions(),
    array('empty'=>'Todos', 'submit'=>'')); ?>
<?php echo CHtml::endForm(); ?>


No model Post (essa eu copiei do próprio guia do Blogger)
const STATUS_DRAFT=1;
const STATUS_PUBLISHED=2;
const STATUS_ARCHIVED=3;

public function getStatusOptions()
{
return array(
self::STATUS_DRAFT=>'Rascunho',
self::STATUS_PUBLISHED=>'Publicado',
self::STATUS_ARCHIVED=>'Arquivado',
);
}

Um grande abraço!!

;D
0

#8 User is offline   josafafilho 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 43
  • Joined: 08-July 09
  • Location:Brazil

Posted 12 August 2009 - 09:36 AM

comigo não está funcionando alguém tem ideia?

	$selected = isset($_GET['tipo'])?$_GET['tipo']:null;
	$data = Modelo_Tear::getTipoOptions(); 	
	echo CHtml::dropDownList('tipo',$selected, $data, array('submit'=>''));

0

#9 User is offline   josafafilho 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 43
  • Joined: 08-July 09
  • Location:Brazil

Posted 12 August 2009 - 09:50 AM

desculpa ai pessoal, mas era um pro com jQuery.

Se o id do botão de submit for 'submit' ele não consegue fazer o submit, não sabia disso ai o firebug resolveu meu pro :D
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