ML
Formulário não carrega dados da tabela para edição de registro
Fechado
Pessoal,
Alguém pode analisar o código abaixo e detectar algo de errado que está impedindo que o formulário carregue os dados da tabela para edição através do parâmetro 'key'.
Eu digito na URL "localhost/misterchef/index.php?class=ClienteForm&method=onEdit&a e formulário não carrega os dados da tabela, os campos do formulário ficam em branco e também não apresenta nenhuma mensagem de erro.
Alguém pode analisar o código abaixo e detectar algo de errado que está impedindo que o formulário carregue os dados da tabela para edição através do parâmetro 'key'.
Eu digito na URL "localhost/misterchef/index.php?class=ClienteForm&method=onEdit&a e formulário não carrega os dados da tabela, os campos do formulário ficam em branco e também não apresenta nenhuma mensagem de erro.
- <?php
- class ClienteForm extends TPage
- {
- private $form;
- public function __construct()
- {
- parent::__construct();
- $this->form = new TQuickForm('form_cliente');
- $this->form->setFormTitle('Cadastro de Clientes');
- $this->form->class = 'tform';
- $this->form->style = 'width: 500px';
- 1597_cliente = new TEntry('id_cliente');
- $nome_cliente = new TEntry('nome_cliente');
- $tel_cliente = new TEntry('tel_cliente');
- $ponto_ref = new TEntry('ponto_ref');
- $data_nasc_cliente = new TDate('data_nasc_cliente');
- 1597_cliente->setEditable(FALSE);
- $this->form->addQuickField('ID Cliente', 1597_cliente, 25);
- $this->form->addQuickField('Nome', $nome_cliente, 200);
- $this->form->addQuickField('Telefone', $tel_cliente, 75);
- $this->form->addQuickField('Referência', $ponto_ref, 100);
- $this->form->addQuickField('Data de Nascimento', $data_nasc_cliente, 50);
- $save = new TAction( array($this, 'onSave') );
- $this->form->addQuickAction('Salvar', $save, 'ico_save.png');
- $edit = new TAction( array($this, 'onEdit') );
- $this->form->addQuickAction('Novo', $edit, 'ico_new.png');
- parent::add($this->form);
- }
- public function onSave()
- {
- try
- {
- TTransaction::open('conectabd');
- $object = $this->form->getData('Cliente');
- $object->store();
- $this->form->setData( $object );
- new TMessage('info', 'Registro adicionado com sucesso!');
- TTransaction::close();
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- TTransaction::rollback();
- }
- }
- public function onEdit( $param )
- {
- try
- {
- TTransaction::open('conectabd');
- $key = $param['key'];
- $cliente = new Cliente( $key );
- $this->form->setData( $cliente );
- TTransaction::close();
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- }
- }
- }
- ?>
endereço correto digitado na URL
localhost/misterchef/index.php?class=ClienteForm&method=onEdit&a
Mudei o código como está abaixo, mas a busca continua com a mesma situação o formulário não carrega as informações do banco.
Ta faltando o paramentro id.
Em que parte Felipe?
Obg, pelo retorno.
Em que parte Felipe?
Obg, pelo retorno.
Note no final de sua URL falta passar key que vai ser interpretado pelo onEdit
Note:
www.adianti.com.br/framework_files/tutor/index.php?class=CustomerFor
Na hora de copiar para o fórum é que o link está ficando com esse final localhost/misterchef/index.php?class=ClienteForm&method=onEdit&a, mas na URL o final é =onEdit&key=1 e os dados não são carregados para o formulário.
existe o registro 1 ?
Tem até o registro 30.
posta seu model Marcelo.
Segue...
Realmente não estou vendo erro tem como me enviar o projeto? É em sqlite? O campo id_cliente está como int ?
To usando mysql.
O campo esta como int.
Te mando por e-mail?
felipecortez.fgc@gmail.com amanhã dou uma olhada.
Enviei o e-mail.
Preciso muito de ajuda, pois estou fazendo um trabalho pra apresentação na faculdade.
Achei o erro ele está no Model.
Felipe!
Deu certo fiz o que vc pediu, ta ok!!
Muito obrigado por dispor do seu tempo e do seu conhecimento para me ajudar...
Vou dar continuidade no trabalho que tenho que apresentar.
Caso tenha novos ''problemas'', espero poder contar com sua ajuda.
Estou com o mesmo problema e não consegui solucionar.
Sou iniciante no Adianti e copiei um exemplo de cadastro simples do vídeo do Pablo no youtube (link https://www.youtube.com/watch?v=VcX_bPhdCes), mas, quando passo o comando pelo browser: localhost/index.php?class=ImobiliariaForm&method=onEdit&key=, não posiciona no registro 1. Se coloco key=2 fala que não tem na tabela e está correto, já na key=1 não emite mensagem de alerta e nem posiciona...
No meu caso, meu Model possui o código abaixo e que foi sugerido acima para a solução. Mesmo assim não funciona. O que será que pode ser? Quais os fatores necessários para o comando &method=onEdit&key=1 funcionar?
public function __construct($id = NULL, $callObjectLoad = TRUE) // erro nessa linha
{
parent::__construct($id, $callObjectLoad); // falta essa linha
Obrigada,
Adriana
Gente, o link correto, no qual copiei a tela de cadastro, é o https://www.youtube.com/watch?v=ccnKCrhB1io.
Pois acabei descobrindo o que era. Após assistir todo o vídeo novamente e conferir se estava tudo certo e após clicar no botão listar também emitir mensagem de que o id não existia ou era null, desconfiei que poderia ser algo na estrutura da tabela que criei. Pois criei outra tabela e inseri o ID como tipo inteiro e como primary. Na outra tabela havia mudado muito a estrutura para testar e deve ter ficado algo errado. Após criar outra tabela funcionou. No meu caso então era erro na estrutura das colunas da tabela, provavelmente no ID.