Prezados,
Sou iniciante neste assunto e estou tendo muita dificuldade com um aspecto. Já tentei solucionar de várias maneiras mas não consegui, por isso peço sua ajuda. Essa condição está acontecendo com todos os meus formulários que, por padrão, constituem de um conjunto de campos para inserção de dados e um gride que apresenta os registros inseridos para exclusão e alteração.
O problema é que os botões de alteração e exclusão do grid, criados automaticamente, não funcionam.
Segue o exemplo.
Tabela no banco MySQL:
Nome da Tabela: Obj_Instituicao
Colunas: Num_Instituicao (AI,PK),Nom_Instituicao
Arquivo registrar_instituicao.php
<?php
$frm = new TForm('Registro de Instituição');
// para exemplificar o uso do campo html e da inclusão de um arquivo css externo
$frm->addHtmlField('mensagem','<br><left><span class="FonteVermelha">Campos em vermelho são obrigatórios</span></left>');
// adicionar o campo hidden para a coluna chave da tabela.
$frm->addHiddenField('Num_Instituicao');
$frm->addTextField('Nom_Instituicao','Nome da Instituição:',100,true,50);
// Botoes não mexer
$frm->addButton('Salvar','salvar','btnSalvar',null,null,true,false);
$frm->addButton('Limpar','limpar','btnLimpar',null,null,false,false);
// criar o campo html vazio para receber o gride.
$frm->addHtmlField('gride','Grade de Instituições');
// criarção do gride
$g = new TGrid(
'gd' // id do gride
,'Instituições Registradas'
,Obj_InstituicaoDAO::SelectAll('Nom_Instituicao')// array de dados
,null
,null
,'Num_Instituicao'); // chave da tabela
// adicionar o gride como conteúdo do campo html
$frm->set('gride',$g);
// processar as ações do diretório action/
$frm->processAction();
$frm->show();
?>
Arquivo action/gd_alterar.php
<?php
// recuperar a Instituição pelo Num_Instituicao selecionado no gride
$dados = Obj_InstituicaoDAO::select($frm->get('Num_Instituicao'));
// atualizar os campos do form com os dados da Instituição
$frm->set('Num_Instituicao',$dados['NUM_INSTITUICAO'][0]);
$frm->set('Nom_Instituicao',$dados['NOM_INSTITUICAO'][0]);
?>
Arquivo action/gd_excluir.php
<?php
Obj_InstituicaoDAO::delete($frm->get('Num_Instituicao'));
?>
Os arquivos Obj_InstituicaoDAO e Obj_InstituicaoVO foram criados pelo gerador automático.
Os botões Salvar e Limpar funcionam perfeitamente.
Agradeço pela atenção.
Autor: Cláudia de Aguiar
77 comentários
Botão Salvar, dentro de "action" o arquivo salvar.php Botão Alterar, dentro de "action" o arquivo alterar.php Botão Excluir, dentro de "action" o arquivo excluir.php Antes da declaração dos botões no form, declare:
$frm->processAction(); Esse trecho de código fará com que o framework busque as ações no diretório "action" e fará o processamento necessário,
Quanto aos javascripts podem ser declarados tanto depois do fechamento da tag php "?>" entre as tags "<script></script>", como também em um arquivo separado só para isso. Ex.:
Se o arquivo de módulo se chama aluno.php, no mesmo diretório crie o arquivo aluno.js e declare nele os scripts javascript e não precisa colocar as tags "<script></script>" de javascript neste arquivo.
Se não aparecer nada, ai o código do botão não foi executado. E o que depende dele também não, depois de resolver essa etapa, remova ou comente as linhas acima
1) Copiei e colei errado do tutorial do CRUD, ou pelo meu parco entendimento fiz alguma alteração que não deveria;
2) Está errado no tutorial ou não corresponde à versão do software que estou usando... 'bora quebrar a cabeça... Muito obrigada!