Valor da TDBCombo não grava no banco de dados Boa noite! Estou trabalhando com várias TDBCombo, consigo fazer listar os valores vindo de várias outras tabelas, até aqui tudo normal. Porém a informação não é gravada na tabela do banco de dados está ficando em branco os valores preenchidos com os dados dessas TDBCombo. Já pesquisei no fórum, mas não visualizei algo que pudesse me dar uma direção para resolver esse problemas. Po...
MB
Valor da TDBCombo não grava no banco de dados  
Boa noite!

Estou trabalhando com várias TDBCombo, consigo fazer listar os valores vindo de várias outras tabelas, até aqui tudo normal. Porém a informação não é gravada na tabela do banco de dados está ficando em branco os valores preenchidos com os dados dessas TDBCombo. Já pesquisei no fórum, mas não visualizei algo que pudesse me dar uma direção para resolver esse problemas. Por isso peço ajuda de vocês.

Criei também um form so para exibir a listagem dos dados inseridos nesse form de contato.

Segue código:

 
  1. <?php
  2. class ContatoForm extends TPage
  3. {
  4. private $form;
  5. public function __construct()
  6. {
  7. parent::__construct();
  8. $this->form = new TQuickForm('form_contato');
  9. $this->form->setFormTitle('Contato');
  10. $this->form->class = 'tform';
  11. $this->form->style = 'width: 650px';
  12. $id_contato = new TEntry('id_contato');
  13. $celular = new TEntry('celular');
  14. $nome = new TEntry('nome');
  15. $datanascimento = new TDate('datanascimento');
  16. $comprou = new TDBCombo('comprou', 'dbmodaviva', 'Comprou', 'id_comprou', 'descricao');
  17. $naocomprou = new TEntry('naocomprou');
  18. $interesse = new TDBCombo('objeto', 'dbmodaviva', 'Objeto', 'id_objeto', 'objeto');
  19. $opcoes = new TDBCombo('objetotipo', 'dbmodaviva', 'Objetotipo', 'id_objetotipo', 'tipo');
  20. $genero = new TCombo('genero');
  21. $id_contato->setEditable(FALSE);
  22. $id_contato->setMask('0000');
  23. $celular->setMask('(99)99999-9999');
  24. $comprou->addItems( array(1=>'SIM', 2=>'NÃO'));
  25. $genero->addItems( array(1=>'M', 2=>'F'));
  26. $this->form->addQuickField('Identificador', $id_contato, 40);
  27. $this->form->addQuickField('Celular', $celular, 125);
  28. $this->form->addQuickField('Nome', $nome, 400);
  29. $this->form->addQuickField('Data de Nascimento', $datanascimento, 90);
  30. $this->form->addQuickField('Comprou', $comprou, 60);
  31. $this->form->addQuickField('Não Comprou', $naocomprou, 400);
  32. $this->form->addQuickField('Interesse', $interesse, 130);
  33. $this->form->addQuickField('Opções', $opcoes, 130);
  34. $this->form->addQuickField('Gênero', $genero, 50);
  35. //adicionando ação salvar dentro do form
  36. $save = new TAction (array($this, 'onSave') );
  37. $this->form->addQuickAction('Salvar', $save, 'ico_save.png');
  38. //adicionando ação listar dentro do form
  39. $list = new TAction( array('ContatoList', 'onReload') );
  40. $this->form->addQuickAction('Listar', $list, 'ico_datagrid.png');
  41. parent::add($this->form);
  42. }
  43. public function onSave()
  44. {
  45. try
  46. {
  47. TTransaction::open('dbmodaviva');
  48. $object = $this->form->getData('Contato');
  49. $object->store();
  50. $this->form->setData( $object );
  51. new TMessage('info', 'Registro salvo com sucesso');
  52. TTransaction::close();
  53. }
  54. catch (Exception $e)
  55. {
  56. new TMessage('error', $e->getMessage());
  57. TTransaction::rollback();
  58. }
  59. }
  60. public function onEdit( $param )
  61. {
  62. try
  63. {
  64. TTransaction::open('dbmodaviva');
  65. $key = $param [ 'key' ];
  66. $object = new Contato( $key );
  67. $this->form->setData ($object);
  68. TTransaction::close();
  69. }
  70. catch (Exception $e)
  71. {
  72. new TMessage('error', $e->getMessage());
  73. }
  74. }
  75. }
  76. ?>


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


IF

Oi Marcelo.
O nome do objeto num form sempre tem que coincidir com o nome do campo do seu Banco de Dados.
Se vc tem um campo com o nome "interesse" em se banco de dados, então deverá fazer o seguinte:
 
  1. <?php
  2. $interesse = new TDBCombo('interesse', 'dbmodaviva', 'Objeto', 'id_objeto', 'objeto');
  3. ?>


Note que o primeiro parâmetro ($name) do TDBCombo mudei para "interesse" deduzindo que o seu banco tenha esse campo
MB

Ola Ivan! Deu certo aqui. Não me atentei pra sintaxe correta. Obrigado!

Como faço para que no formlist ao inves de aparecer o "id_objeto", seja exibido o "objeto". ?
Se puder me passar mais essa dica dica fico agradecido.
IF

Oi Marcelo, nesse caso vc deve dar uma olha nisso: www.adianti.com.br/framework_files/tutor/index.php?class=Association
e também aqui: www.adianti.com.br/framework_files/tutor/index.php?class=CustomerDat, vc vai trabalhar com associações de objectos no seu model. Veja que no segundo exemplo ele mostra o nome da cidade em vez de mostrar o id.