menu
Fórum Adianti
menu Menu
Alterar Imagem com ação em TCombo Boa tarde a todos, preciso colocar um combo e um espaço para imagem. Essa imagem será alterada conforme a seleção do combo. Pesquisei no fórum e achei um tópico antigo ( https://www.adianti.com.br/forum/pt/view_4721?alterar-imagemtimage-ao-selecionar-opcao-no-tcombo ) com a ideia parecida, no entanto, não funcionou. Alguém poderia dar uma ideia de como fazer, qual componente e recur...
TL
Alterar Imagem com ação em TCombo  
Boa tarde a todos,

preciso colocar um combo e um espaço para imagem. Essa imagem será alterada conforme a seleção do combo.
Pesquisei no fórum e achei um tópico antigo ( https://www.adianti.com.br/forum/pt/view_4721?alterar-imagemtimage-ao-selecionar ) com a ideia parecida, no entanto, não funcionou.

Alguém poderia dar uma ideia de como fazer, qual componente e recurso poderia usar ou de repente, esclarecer como funciona a explicação do post anterior ?

obrigado!



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 (1)


WR

Bom dia!!

Vou postar as partes do código necessário para funcionar a troca da imagem ao selecionar o TDBCombo.
Na época apanhei muito para fazer funcionar(rsrsrs)
Vai ter código em 03 Lugares: Classe Contrutor, Function onChangeAction e Funtion onReload

  1. <?php
  2. //CLASSE CONSTRUTOR DA SUA APLICAÇÃO 
  3.  public function __construct()
  4.     {
  5.         parent::__construct();
  6. ...
  7. //COLOQUEI DENTRO DE UM FRAME, MAS VOCÊ FAZ COMO QUISER
  8.         $frame_geral = new TFrame;
  9.         $frame_geral->class 'tframe tframe-custom';
  10.         $frame_geral->setLegend('Datas Reservadas');
  11.         $frame_geral->style 'width:90%;height:90%;padding:0px;background:white';
  12.         
  13.         $imagem = new TImage('teste.png');
  14.         $imagem->id 'imagemX';
  15.         $imagem->style 'width:200px;height:150px';
  16.         $frame_geral->add($imagem);
  17. // CÓDIGO USADO PARA ALIMENTAR O TDBCombo    
  18.      $criteria = new TCriteria();
  19.      $criteria->add(new TFilter('situacao','=','Ativo'));                                    
  20.      $veiculo_id = new TDBCombo('veiculo_id''DBPROJETO''Veiculo''id''{modelo->descricao}','',$criteria);
  21.  
  22.  //EVENTO ONCHANGE EXIBIR IMAGEM 
  23.         $change_action = new TAction(array($this'onChangeAction')); //
  24.         $veiculo_id->setChangeAction($change_action);
  25.  ...
  26. }
  27. /**
  28. *Executado quando usuário seleciona o veiculo
  29. */
  30. public static function onChangeAction($param)
  31. {
  32.     try
  33.     {
  34.        // var_dump($param);
  35.         TTransaction::open('DBPROJETO');
  36.         $conn TTransaction::get();
  37.         
  38.         //Pego as informações do veiculo no DB com base no ID enviado do TDBCombo
  39.         $veiculo Veiculo::find($param['veiculo_id']);
  40.         if($veiculo)
  41.           {
  42.                $placa_number $veiculo->placa;
  43.                $foto_veiculo $veiculo->foto_path;
  44.           }
  45.           else
  46.           {
  47.            $placa_number NULL;
  48.            $foto_veiculo NULL;
  49.          
  50.           }
  51.           
  52.         $obj = new StdClass;
  53.         $obj->placa $placa_number;
  54.         $obj->path_imagem $foto_veiculo//AQUI ESTÁ SALVO NO DB O PATH PARA A IMAGEM SALVA.  EXEMPLO:"app/images/1/DobloAttractive.png"
  55.         
  56.         // refresh photo_frame
  57.         TScript::create("$('#imagemX').html('')");
  58.         TScript::create("$('#imagemX').append(\"<img style='width:470px;height:230px' src='{$foto_veiculo}'>\");");   
  59.         TSession::setValue('path_imagem',$foto_veiculo);//GRAVO NA SESSÃO PARA LER NO onRELOAD DEPOIS
  60.         
  61.         TForm::sendData('form_Reserva'$obj); //NÃO ESQUEÇA DE COLOCAR O NOME CORRETO DO SEU FORM,SENÃO NÃO IRÀ FUNCIONAR NEM A PAU.
  62.         TApplication::postData('form_Reserva''ReservaFormList''onReload');//AQUI VAI O NOME DO SEU FORM e E DE SUA CLASSE
  63.         TTransaction::close(); // close the transaction
  64.         
  65.         }
  66.         catch (Exception $e)
  67.         {
  68.             // shows the exception error message
  69.             new TMessage('error''<b>Atenção!!</b> ' $e->getMessage());
  70.             TTransaction::rollback();            
  71.         }
  72.     }
  73. //ONRELOAD
  74. public function onReload($param null){
  75.   //var_dump($_SESSION);
  76. /**************************************************************
  77. *   Atualiza a foto do veiculo com o dado gravado na sessao
  78. ***************************************************************/
  79.     if(!empty(TSession::getValue('path_imagem'))){
  80.         $path_img TSession::getValue('path_imagem');
  81.         TScript::create("$('#imagemX').html('')");
  82.         TScript::create("$('#imagemX').append(\"<img style='width:400px;height:270px' src='{$path_img}'>\");");  //AQUI EU ALTERO O TAMANHO DA IMAGEM
  83.     }
  84. ...
  85. }
  86. ?>


Espero ter ajudado, já que a comunidade me ajudou tantas vezes e sou muito grato !
Grande abraço!


Editado 12/05/2022 (há 1 mês) - Ver alterações