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 Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework 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. $imagem = new TImage('teste.png');
  13. $imagem->id = 'imagemX';
  14. $imagem->style = 'width:200px;height:150px';
  15. $frame_geral->add($imagem);
  16. // CÓDIGO USADO PARA ALIMENTAR O TDBCombo
  17. $criteria = new TCriteria();
  18. $criteria->add(new TFilter('situacao','=','Ativo'));
  19. $veiculo_id = new TDBCombo('veiculo_id', 'DBPROJETO', 'Veiculo', 'id', '{modelo->descricao}','',$criteria);
  20. //EVENTO ONCHANGE EXIBIR IMAGEM
  21. $change_action = new TAction(array($this, 'onChangeAction')); //
  22. $veiculo_id->setChangeAction($change_action);
  23. ...
  24. }
  25. /**
  26. *Executado quando usuário seleciona o veiculo
  27. */
  28. public static function onChangeAction($param)
  29. {
  30. try
  31. {
  32. // var_dump($param);
  33. TTransaction::open('DBPROJETO');
  34. $conn = TTransaction::get();
  35. //Pego as informações do veiculo no DB com base no ID enviado do TDBCombo
  36. $veiculo = Veiculo::find($param['veiculo_id']);
  37. if($veiculo)
  38. {
  39. $placa_number = $veiculo->placa;
  40. $foto_veiculo = $veiculo->foto_path;
  41. }
  42. else
  43. {
  44. $placa_number = NULL;
  45. $foto_veiculo = NULL;
  46. }
  47. $obj = new StdClass;
  48. $obj->placa = $placa_number;
  49. $obj->path_imagem = $foto_veiculo; //AQUI ESTÁ SALVO NO DB O PATH PARA A IMAGEM SALVA. EXEMPLO:"app/images/1/DobloAttractive.png"
  50. // refresh photo_frame
  51. TScript::create("$('#imagemX').html('')");
  52. TScript::create("$('#imagemX').append(\"<img style='width:470px;height:230px' src='{$foto_veiculo}'>\");");
  53. TSession::setValue('path_imagem',$foto_veiculo);//GRAVO NA SESSÃO PARA LER NO onRELOAD DEPOIS
  54. 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.
  55. TApplication::postData('form_Reserva', 'ReservaFormList', 'onReload');//AQUI VAI O NOME DO SEU FORM e E DE SUA CLASSE
  56. TTransaction::close(); // close the transaction
  57. }
  58. catch (Exception $e)
  59. {
  60. // shows the exception error message
  61. new TMessage('error', '<b>Atenção!!</b> ' . $e->getMessage());
  62. TTransaction::rollback();
  63. }
  64. }
  65. //ONRELOAD
  66. public function onReload($param = null){
  67. //var_dump($_SESSION);
  68. /**************************************************************
  69. * Atualiza a foto do veiculo com o dado gravado na sessao
  70. ***************************************************************/
  71. if(!empty(TSession::getValue('path_imagem'))){
  72. $path_img = TSession::getValue('path_imagem');
  73. TScript::create("$('#imagemX').html('')");
  74. TScript::create("$('#imagemX').append(\"<img style='width:400px;height:270px' src='{$path_img}'>\");"); //AQUI EU ALTERO O TAMANHO DA IMAGEM
  75. }
  76. ...
  77. }
  78. ?>


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


Editado 12/05/2022 (há 3 anos) - Ver alterações