Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Pegar texto do combo Como faço pra além de pegar o valor selecionado, pegar também o texto selecionado? ...
T
Pegar texto do combo  
Como faço pra além de pegar o valor selecionado, pegar também o texto selecionado?


Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (8)


AM

Boa tarde,
este teu combo vem do banco de dados é um tdbcombo ?
T

Não é um TCombo!
NR

Thiago, você pode colocar o array com as opções da combo em uma variável e capturar na função onSave:
  1. <?php
  2. //construct
  3. $this->opcoes_combo = array('1'=>'Opcao 1','2'=>'Opcao 2');
  4. $combo = new TCombo('combo');
  5. $combo->addItems($this->opcoes);
  6. //onSave
  7. $data $this->form->getData();
  8. $texto_selecionado $this->opcoes_combo[$data->combo];
  9. ?>
T

Nataniel,

O problema é que a função que determina quais opções irão aparecer no combo é estática, pois é uma função chamada no onChangeAction de outro combo, ai não consigo utilizar o $this->opcoes_combo.

Alguma sugestão?

NR

Crie a variável como estática:
  1. <?php
  2. // declaracao
  3. static $opcoes_combo = array('1'=>'Opcao 1','2'=>'Opcao 2');
  4. //utilizacao
  5. self::$opcoes_combo;
  6. ?>

T

Ainda assim não consegui, veja se pode me dar uma luz!

  1. <?php
  2. //Declaração
  3. static  $opcoes_campo;
  4. //Troca do conteudo do campo, no setChangeAction
  5. static function ListaCampos($param)
  6.     {
  7.         if($param['tabela'] == 'Cad_Contato')
  8.         {
  9.             self::$opcoes_campo = array('id'       => 'ID',
  10.                                         'nome'     => 'Nome',
  11.                                         'telefone' => 'Telefone',
  12.                                         'celular'  => 'Celular',
  13.                                         'email'    => 'Email');
  14.         }
  15.         else if($param['tabela'] == 'Cad_Subgrupo')
  16.         {
  17.             self::$opcoes_campo = array('id' => 'ID',
  18.                                         'descricao' => 'Descrição',
  19.                                         'cad_grupo->descricao' => 'Grupo');
  20.         }
  21.         TCombo::reload('gerador''campo'self::$opcoes_campo);
  22.         TButton::enableField('gerador''inserir');
  23.     }
  24. //Inserção do conteudo no onInsert
  25. function onInsert($param)
  26.     {
  27.             $dados $this->form->getData();
  28.             $items TSession::getValue('items');
  29.             
  30.             $texto self::$opcoes_campo[$dados->campo];
  31.             print_r ($texto);
  32.             
  33.             
  34.             $key $dados->campo;
  35.             $items$key ] = array('campo'       => $dados->campo,
  36.                                    'tamanho'     => $dados->tamanho,
  37.                                    'alinhamento' => $dados->alinhamento);
  38.                                    
  39.             
  40.             TSession::setValue('items'$items);
  41.             
  42.             $dados->campo 'id';
  43.             $dados->tamanho 100;
  44.             $dados->alinhamento 'left';
  45.             
  46.             $this->form->setData($dados);            
  47.             $this->onReload($param);
  48.             $this->ListaCampos($param);
  49.     }
  50. ?>

NR

Como os dados mudam de acordo com a tabela selecionada, você pode fazer uma função para retorná-los:
  1. <?php
  2. static function getOpcoesTabela($tabela)
  3. {
  4.     if($tabela == 'Cad_Contato')
  5.     {
  6.           $opcoes_campo = array('id'       => 'ID',
  7.                                         'nome'     => 'Nome',
  8.                                         'telefone' => 'Telefone',
  9.                                         'celular'  => 'Celular',
  10.                                         'email'    => 'Email');
  11.         }
  12.         else if($tabela == 'Cad_Subgrupo')
  13.         {
  14.              $opcoes_campo = array('id' => 'ID',
  15.                                         'descricao' => 'Descrição',
  16.                                         'cad_grupo->descricao' => 'Grupo');
  17.         }
  18.      return $opcoes_campo;
  19. }
  20. static function ListaCampos($param)
  21. {    
  22.       $opcoes_campo self::getOpcoesTabela($param['tabela']);
  23.       TCombo::reload('gerador''campo'$opcoes_campo);
  24.       TButton::enableField('gerador''inserir');
  25. function onInsert($param)
  26. {
  27.        $dados $this->form->getData();
  28.        $items TSession::getValue('items');
  29.             
  30.        $opcoes_campo self::getOpcoesTabela($dados->tabela);
  31.        $texto $opcoes_campo[$dados->campo];
  32.        print_r ($texto);
  33.        ...
  34. }        
  35.              
  36. ?>
T

Funcionou! Muito obrigado.