Ir para o conteúdo

 Voltar a Fórum do For...
Tela cheia

Novo cadastro

29 de Junho de 2013, 1:03 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 15 vezes

Neste form gostaria de clicar no botão "Nova série" ou "Nova Sala" e fazer o cadastro de um novo item, e receber o retorno do id gerado. Consigo chamar a tela de cadastro do item em Modal, mas a gravação não ocorre(acessando diretamente grava) e o id não retorna ainda. Tem como fazer funcionar assim? Ou existe outro método que faça?  

Autor: Jair de Jesus


22 comentários

  • Cff659012a9d95f8837b6d50d8c14c69?only path=false&size=50&d=404Jair de Jesus(usuário não autenticado)
    29 de Junho de 2013, 1:07

     

    Segue os códigos:

    <?php

    define('REQUIRED_FIELD_MARK','*');

    /*

    $listEscola = Escola::selectAll('id_esc', 'esc_actived !=2');

    $listSerie = SerieDAO::selectAll('id_ser');

    */

    $frm = new TForm('Cadastro de Aluno', 400, 1000);

    $frm->addHiddenField('id_alu');

    $frm->setColumns(60);

    $pc = $frm->addPageControl('pc',null,null,null,'abaClick()');

    $page = $pc->addPage('Informações Pessoais',true,true,'abaCadAluno');

    $page->setColorHighlightBackground('#FDFCD7');

    $frm->addSelectField('alu_actived','Ativar/Desativar:',true,"1=Ativado,2=Desativado")->setTooltip('Ative ou desative o Aluno.');

    $frm->addSelectField('alu_id_ser', 'Série:', true, $listSerie)->setTooltip('Selecione a Sérir do Aluno.');

        $frm->addButton('Nova Série',null,'btnSerie','newSerie()',null,false,false);

    $frm->addSelectField('alu_id_sala', 'Sala:', true, $listSala)->setTooltip('Selecione o Sala do aluno.');

        $frm->addButton('Nova Sala',null,'btnTipo','newSala()',null,false,false);

    $frm->addTextField('alu_codigo','Matrícula:',100,false,50,null,null,'Informe a matrícula do aluno');

    $frm->addTextField('alu_nome','Nome:',100,true,50,null,null,'Informe o nome completo do aluno');

           $frm->addDateField('alu_dtcad','Data de Cadastro:',true,false,date('d/m/Y'))->addEvent('onfocus',"if (this.value == '".date('d/m/Y')."') {this.value = '';}")->addEvent('onBlur' ,"if (this.value == '') {this.value = '".date('d/m/Y')."';}")->setTooltip('Selecione data de cadastro do aluno.');

    $frm->addMemoField('alu_obs','Observações:',2000,false,60,4);

    $page = $pc->addPage('Pesquisar Aluno',false,true,'abaPesqAluno');

    $page->setColumns(80); // define a primeira coluna do formulário da aba para 80 px

        $frm->addTextField('psq_fabr','Localizar Nome:',40,false)->setAttribute('noclear','true')->setTooltip('Pesquisar - Informe o nome ou parte do nome e clique no botão Pesquisar!');

        $frm->addButton('Pesquisar',null,'btnPesquisar','atualizarGride()',null,false,false);

    $frm->addHtmlField('html_gride');

    $pc->addPage('Listar Alunos',false,true,'abaListar');

    $frm->addHtmlField('html_list','');

    $frm->closeGroup(); // fim das abas

    $frm->processAction();

    $frm->addButtonAjax('Salvar',null,'antesSalvar','depoisSalvar','salvar','Salvando...','text',false,null,'btnSalvar');

    $frm->addButton('Novo',null,'btnNovo','novo()');

    $frm->show();

    ?>

    <script>

    function antesSalvar()

    {

    if( !fwValidateFields() )

    {

    return false;

    }

    return true;

    function depoisSalvar(res)

    {

    if( res )

    {

    fwAlert(res );

    }

    else 

    {

    parent.app_show_message("Dados gravados com SUCESSO!","sucess","5");

    novo();

    }

    function novo()

    {

    fwClearChildFields();

    fwSelecionarAba('abaCadproduto');

    fwSetFocus('alu_nome');

    }

    function abaClick(pc,aba,id)

    {

    if( id =='abalistar')

    {

    listarGride();

    }

    if( id =='abapesqaluno')

    {

    atualizarGride();

    }

    if( id == 'abausuarios')

    {

    if( jQuery("#psq_cli").val() != '' )

    {

    atualizarGride();

    }

    }

    }

    function atualizarGride()

    {

    fwGetGrid('cadastros/cad_aluno/cad_aluno.php','html_gride',{"action":"criar_gride","psq_prod":""});

    }

    function listarGride()

    {

    fwGetGrid('cadastros/cad_aluno/cad_aluno.php','html_list',{"action":"listar_gride"});

    }

    function grideAlterar(campoChave,valorChave)

    {

    fwAjaxRequest({

    "action":"alterar",

    "dataType":"json",

    "data":{"id_alu":valorChave},

    "callback":function(dados)

    {

    if( dados.message )

    {

    fwAlert(dados.message);

    return;

    }

    fwUpdateFieldsJson(dados);

    fwSelecionarAba('abaCadproduto');

    }

    });

    }

    function grideCancelar(campoChave,valorChave)

    {

    if( fwConfirm('Deseja cancelar o aluno ?',

    function(r){

    if( r == true )

    {

    fwAjaxRequest({

    "action":"cancelar",

    "dataType":"text",

    "data":{"id_alu":valorChave},

    "callback":function(res)

    {

    if( res )

    {

    fwAlert(res);

    }

    atualizarGride();

    }

    });

    }

    })

    );

    }

    function newSerie()

    {

    fwModalBox(null,app_index_file+'?modulo=cadastros/cad_fabricante/cad_fabricante.php',460,810,null,{'id_fabr':''});

    }

    function newSala()

    {

    fwModalBox('Tipo',app_index_file+'?modulo=cadastros/cad_tipo/cad_tipo.php',410,610,callbackModaBox,{'id_tipo':''});

    }

    function callbackModaBox(data, doc )

    {

    jQuery("#alu_id_tipo").val(data.id_sal);

    }

    </script> 

  • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
    1 de Julho de 2013, 20:23

     

    Jair,

    o caminho é este mesmo, chamar a modal box e pegar o data na função de callback.  Você tem que verificar se o campo id_sal está sendo preenchido antes de fechar a modal. Na sua função de gravaçao da sala ela deverá retornar o id gerado e este ser colocado no campo  oculto id_sal do form e se ainda quiser fechar a modal automaticamente apos a gravação basta adicionar o javascript no form: $frm->addJavascript('fwClose_modal_window();'); quando a ação de gravação for chamada.

    Abraço.

Essa comunidade não possui posts nesse blog