CS
Iframe para imagem não aparece no form
Boa noite, pessoal. Alguém pode me ajudar porque não aparece o iframe foto_frame no meu formulário?
Segue código:
[]'s
Segue código:
- <?php
- class EstProdutoForm extends TPage
- {
- protected $form; // form
- private $frame;
-
- /**
- * Form constructor
- * @param $param Request
- */
- public function __construct( $param )
- {
- parent::__construct();
-
- // creates the form
- $this->form = new TQuickForm('form_EstProduto');
- $this->form->class = 'tform'; // change CSS class
- $this->form = new BootstrapFormWrapper($this->form);
- $this->form->style = 'display: table;width:90%'; // change style
-
- // define the form title
- $this->form->setFormTitle('EstProduto');
-
- // create the form fields
- $id = new TEntry('id');
- $descricao = new TEntry('descricao');
- $unidade = new TCombo('unidade');
- $grupo_id = new ">TDBSeekButton('grupo_id', 'sigaw', 'form_EstProduto', 'EstGrupoProduto', 'descricao', 'grupo_id', 'grupo_descricao');
- $grupo_descricao = new TEntry('grupo_descricao');
- $cod_barras = new TEntry('cod_barras');
- $situacao = new TRadioGroup('situacao');
- $custo = new TEntry('custo');
- $venda = new TEntry('venda');
- $tipo = new TCombo('tipo');
- $ncm = new TEntry('ncm');
- $origem = new TCombo('origem');
- $cest = new TEntry('cest');
- $foto = new TFile('foto');
-
- // complete upload action
- $foto->setCompleteAction(new TAction(array($this, 'onComplete')));
-
- // Formatação dos campos
- $itens_unidade = array();
- $itens_unidade['PÇ'] = 'PEÇA';
- $itens_unidade['UN'] = 'UNIDADE';
- $itens_unidade['KG'] = 'KILOGRAMA';
- $itens_unidade['GR'] = 'GRAMA';
- $itens_unidade['MT'] = 'METRO';
- $itens_unidade['CM'] = 'CENTÍMETRO';
- $itens_unidade['CT'] = 'CARTELA';
- $itens_unidade['CX'] = 'CAIXA';
- $itens_unidade['DZ'] = 'DUZIA';
- $itens_unidade['PA'] = 'PAR';
- $itens_unidade['PT'] = 'PACOTE';
- $itens_unidade['RL'] = 'ROLO';
- $itens_unidade['LT'] = 'LITRO';
- $itens_unidade['M3'] = 'METRO CÚBICO';
- $itens_unidade['ML'] = 'MILILITRO';
- $unidade->addItems($itens_unidade);
-
- $itens_tipo = array();
- $itens_tipo['Ativo Imobilizado'] = 'Ativo Imobilizado';
- $itens_tipo['Embalagem'] = 'Embalagem';
- $itens_tipo['Garrafa'] = 'Garrafa';
- $itens_tipo['Material de uso e consumo'] = 'Material de uso e consumo';
- $itens_tipo['Matéria-prima'] = 'Matéria-prima';
- $itens_tipo['Mercadoria para revenda'] = 'Mercadoria para revenda';
- $itens_tipo['Outras'] = 'Outras';
- $itens_tipo['Outros insumos'] = 'Outros insumos';
- $itens_tipo['Produto acabado'] = 'Produto acabado';
- $itens_tipo['Produto em processo'] = 'Produto em processo';
- $itens_tipo['Produto intermediário'] = 'Produto intermediário';
- $itens_tipo['Serviços'] = 'Serviços';
- $itens_tipo['Subproduto'] = 'Subproduto';
- $tipo->addItems($itens_tipo);
-
- $itens_origem = array();
- $itens_origem['Nacional'] = 'Nacional';
- $itens_origem['Estrangeira - Importação Direta'] = 'Estrangeira - Importação Direta';
- $itens_origem['Estrangeira - Adquirida no mercado interno'] = 'Estrangeira - Adquirida no mercado interno';
- $origem->addItems($itens_origem);
-
- $grupo_id->setSize(40);
- $grupo_descricao->setSize(190);
- $grupo_descricao->setEditable(FALSE);
-
- $situacao->addItems(array('A'=>'Ativo', 'I'=>'Inativo'));
- $situacao->setValue('A');
- $situacao->setLayout('horizontal');
-
- $descricao->forceUpperCase();
- $custo->setNumericMask(2, ',', '.', true);
- $venda->setNumericMask(2, ',', '.', true);
- // add the fields
- $this->form->addQuickField('Código:', $id, 250 );
- $this->form->addQuickField('Descrição:', $descricao, 250, new TRequiredValidator);
- $this->form->addQuickField('Unidade:', $unidade, 250, new TRequiredValidator);
- $this->form->addQuickFields('Grupo:', array($grupo_id, $grupo_descricao), new TRequiredValidator);
- $this->form->addQuickField('Cód. Barras:', $cod_barras, 250 );
- $this->form->addQuickField('Situação:', $situacao, 250 );
- $this->form->addQuickField('Custo:', $custo, 250 );
- $this->form->addQuickField('Venda:', $venda, 250 );
- $this->form->addQuickField('Tipo:', $tipo, 250 );
- $this->form->addQuickField('Ncm:', $ncm, 250 );
- $this->form->addQuickField('Origem:', $origem, 250 );
- $this->form->addQuickField('Cest:', $cest, 250 );
- $this->form->addQuickField('Foto:', $foto, 250);
-
- $this->frame = new TElement('div');
- $this->frame->id = 'foto_frame';
- $this->frame->style = 'width:400px;height:auto;min-height:200px;border:1px solid gray;padding:4px;';
- $row = $this->form->addRow();
- $row->addCell('');
- $row->addCell($this->frame);
- if (!empty($id))
- {
- $id->setEditable(FALSE);
- }
-
- $foto->setSize(200, 40);
-
- /** samples
- $this->form->addQuickFields('Date', array($date1, new TLabel('to'), $date2)); // side by side fields
- $fieldX->addValidation( 'Field X', new TRequiredValidator ); // add validation
- $fieldX->setSize( 100, 40 ); // set size
- **/
-
- // create the form actions
- $this->form->addQuickAction(_t('Save'), new TAction(array($this, 'onSave')), 'fa:floppy-o');
- $this->form->addQuickAction(_t('New'), new TAction(array($this, 'onClear')), 'bs:plus-sign green');
- $this->form->addQuickAction('Lista', new TAction(array('EstProdutoList','onReload')), 'fa:table blue');
-
- // vertical box container
- $container = new TVBox;
- $container->style = 'width: 90%';
- $container->add(new TXMLBreadCrumb('menu.xml', 'EstProdutoList'));
- $container->add(TPanelGroup::pack('Produtos', $this->form));
-
- parent::add($container);
- }
-
-
- /**
- * On complete upload
- */
- public static function onComplete($param)
- {
- new TMessage('info', 'Upload completed: '.$param['foto']);
-
- // refresh photo_frame
- TScript::create("$('#foto_frame').html('')");
- TScript::create("$('#foto_frame').append(\"<img style='width:100%' src='app/tmp/mbuntu-11.jpg'>\");");
- }
- ?>
[]'s
Opa, descobri que é porque estou usando isto no inicio:
$this->form = new BootstrapFormWrapper($this->form);
Mas como colocar um TElement junto com o BootstrapFormWrapper?
Pelo que verifiquei o BootstrapFormWrapper só exibe os campos do formulário, desconsiderando demais elementos. Uma possível solução seria criar o frame via javascript.