Conheça  A Ferramenta LowCode mais moderna e veloz para desenvolvimento PHP: Adianti Creator
Pegar valor do ID preciso pegar o valor do ID de uma tabela e colocar em outra, mas ID só é gerado quando clico no botão "salvar" e isso faz com que só consegui enxergar o valor do ID quando faço alguma alteração no formulario. Como faço para que o valor do ID fique setado logo quando abro a pagina do formulario?...
TR
Pegar valor do ID  
preciso pegar o valor do ID de uma tabela e colocar em outra, mas ID só é gerado quando clico no botão "salvar" e isso faz com que só consegui enxergar o valor do ID quando faço alguma alteração no formulario.

Como faço para que o valor do ID fique setado logo quando abro a pagina do formulario?

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


AM

Você quer passar o valor de um campo para outro no mesmo formulário? sem dar o submit? se não for me explique melhor, sou novo no adianti mas acho q posso t ajudar.
TR

quero passar o valor do ID de uma tabela e salvar em outra .
No caso estou fazendo uma tabela que armazena as alterações que são feitas em um form.
LC

Você pode pegar o ID depois de salvar.
 
  1. <?php
  2. $object->store(); // save the object
  3. // get the generated id
  4. $data->id = $object->id;
  5. ?>


Depois do store() , vc pega e salva em outra tabela.
TR

Leandro , é exatamente isso que estou fazendo , mas quando crio um novo chamado ele não salva o ID , só salva quando eu o edito.

AM

Posta o código
TR

 
  1. <?php
  2. public function onSave($param = null)
  3. {
  4. try
  5. {
  6. TTransaction::open(self::$database); // open a transaction
  7. /**
  8. // Enable Debug logger for SQL operations inside the transaction
  9. TTransaction::setLogger(new TLoggerSTD); // standard output
  10. TTransaction::setLogger(new TLoggerTXT('log.txt')); // file
  11. **/
  12. $messageAction = null;
  13. $this->form->validate(); // validate form data
  14. $object = new Chamado(); // create an empty object //</blockLine>
  15. $data = $this->form->getData(); // get form data as array
  16. $object->fromArray( (array) $data); // load the object with data
  17. //</beforeStoreAutoCode> //</blockLine>
  18. //<generatedAutoCode>
  19. $arquivo_dir = 'app/output';
  20. //</generatedAutoCode>
  21. $object->user_id= TSession::getValue('username');
  22. $object->data_chamado= date("d-m-Y H:i");
  23. $mail = new TMail;
  24. $mail->setFrom('chamados@gmail.com', 'Chamados Seesp');
  25. $mail->setSubject('Alerta de Chamado');
  26. $mail->setHtmlBody(" <b>Um novo chamado foi aberto!</b>
  27. <br><br><b> Nome: </b>" .$_POST['user_id']
  28. ."<br><b>Telefone: </b>" .$_POST['telefone']
  29. ."<br><b>E-mail: </b>" .$_POST['email']
  30. ."<br><b>Local: </b>" .$_POST['local']."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Departamento: </b>" .$_POST['departamento']
  31. ."<br><b>Produto: </b>" .$_POST['produto'] ."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Problema: </b>" .$_POST['problema']
  32. ."<br><b>Urgência: </b>" .$_POST['urgencia']
  33. ."<br><b>Descrição: </b>" .$_POST['descricao_problema']
  34. ."<br><b>Data: </b>" .$_POST['data_chamado']);
  35. $mail->addAddress($_POST['email']);
  36. $mail->SetUseSmtp();
  37. $mail->SMTPSecure = 'ssl';
  38. $mail->SMTPAuth = true;
  39. $mail->SetSmtpHost('smtp.gmail.com', '465');
  40. $mail->SetSmtpUser('chamados@gmail.com', '');
  41. $mail->addBCC("chamados@gmail.com");
  42. // para enviar arquivos
  43. $mail->send();
  44. $object->store(); // save the object //</blockLine>
  45. //</afterStoreAutoCode> //</blockLine>
  46. //<generatedAutoCode>
  47. $this->saveFile($object, $data, 'arquivo', $arquivo_dir);
  48. //</generatedAutoCode>
  49. // get the generated {PRIMARY_KEY}
  50. $data->id = $object->id; //</blockLine>
  51. $this->form->setData($data); // fill form data
  52. /**
  53. // To define an action to be executed on the message close event:
  54. $messageAction = new TAction(['className', 'methodName']);
  55. **/
  56. $messageAction = new TAction(['ChamadoForm', 'onShow']);
  57. new TMessage('info', AdiantiCoreTranslator::translate('Record saved'), $messageAction);
  58. $objeto = new Log();
  59. $objeto->chamado_id = $_POST['id'];
  60. $objeto->user_id =$_POST['user_id'];
  61. $objeto->telefone =$_POST['telefone'];
  62. $objeto->email =$_POST['email'];
  63. $objeto->local =$_POST['local'];
  64. $objeto->departamento =$_POST['departamento'];
  65. $objeto->produto =$_POST['produto'];
  66. $objeto->problema =$_POST['problema'];
  67. $objeto->area =$_POST['area'];
  68. $objeto->urgencia =$_POST['urgencia'];
  69. $objeto->descricao_problema =$_POST['descricao_problema'];
  70. $objeto->arquivo =$_POST['arquivo'];
  71. $objeto->data_chamado =$_POST['data_chamado'];
  72. $objeto->status =$_POST['status'];
  73. $objeto->observacao =$_POST['observacao'];
  74. $objeto->store();
  75. TTransaction::close(); // close the transaction
  76. //</endTryAutoCode> //</blockLine>
  77. //</autoCode>
  78. }
  79. catch (Exception $e)
  80. {
  81. new TMessage('error', $e->getMessage()); // shows the exception error message
  82. $this->form->setData( $this->form->getData() ); // keep form data
  83. TTransaction::rollback(); // undo all pending operations
  84. }
  85. }//</end>
  86. ?>
AM

Se as tabelas estiverem na mesma classe segue um exemplo que talvez ajude : https://www.adianti.com.br/framework_files/tutor/index.php?class=FormShowHideRow, no caso você define um evento que ocorre quando você clica no formulário, não necessitando salvar o formulário. Se não for o caso explique melhor.
LC

É nesta linha q vc quer pegar o id ?
 
  1. <?php
  2. $objeto->chamado_id = $_POST['id'];
  3. ?>


se for tenta assim:
 
  1. <?php
  2. $objeto->chamado_id = $data->id;
  3. ?>



TR

Consegui resolver usando o seguinte código :
 
  1. <?php
  2. $objChamado = Chamado::all(); //carrega todos os dados da tabela
  3. $objLog = new Log;
  4. foreach($objChamado as $std)
  5. {
  6. //----------------salvar na tabela log ---------------------------
  7. $objLog->chamado_id= $std->id;
  8. $objLog->user_id = $std->user_id;
  9. $objLog->email = $std->email;
  10. $objLog->telefone = $std->telefone;
  11. $objLog->local = $std->local;
  12. $objLog->departamento = $std->departamento;
  13. $objLog->area = $std->area;
  14. $objLog->urgencia = $std->urgencia;
  15. $objLog->descricao_problema = $std->descricao_problema;
  16. $objLog->arquivo = $std->arquivo;
  17. $objLog->status = $std->status;
  18. $objLog->observacao = $std->observacao;
  19. $objLog->data_chamado = date('d/m/Y H:i');
  20. $objLog->store();
  21. ?>


Muito obrigada pela ajuda
TR

Consegui resolver usando o seguinte código :
 
  1. <?php
  2. $objChamado = Chamado::all(); //carrega todos os dados da tabela
  3. $objLog = new Log;
  4. foreach($objChamado as $std)
  5. {
  6. //----------------salvar na tabela log ---------------------------
  7. $objLog->chamado_id= $std->id;
  8. $objLog->user_id = $std->user_id;
  9. $objLog->email = $std->email;
  10. $objLog->telefone = $std->telefone;
  11. $objLog->local = $std->local;
  12. $objLog->departamento = $std->departamento;
  13. $objLog->area = $std->area;
  14. $objLog->urgencia = $std->urgencia;
  15. $objLog->descricao_problema = $std->descricao_problema;
  16. $objLog->arquivo = $std->arquivo;
  17. $objLog->status = $std->status;
  18. $objLog->observacao = $std->observacao;
  19. $objLog->data_chamado = date('d/m/Y H:i');
  20. $objLog->store();
  21. ?>


Muito obrigada pela ajuda