Ir para o conteúdo

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

Refresh Geral

16 de Maio de 2013, 15:51 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 17 vezes

Olá, srs:
Seguindo as dicas e instruções deste post Chamar um form antes menu e depois do login consegui fazê-lo funcionar aqui, fica show de bola, porém gostaria que ele executasse um refresh no form de uma forma geral.

 Nesta page tem um select e após ele um gride é exibido indicando qual foi a opção escolhida. gostaria que após essa exibição, fosse atyalizada a page e as informações pertinentes à escolha fossem efetivadas(exibidas) .
Se possível também gostaria que essa page fosse exibida automaticamente logo após o login(já funciona assim) e depois de logado somente exibida se chamada a partir de um Itém do Menu(ainda não funciona assim, já tenho o Itém no Menu).

segue o conteúdo do escolhaServer.php

<?php

$perfil = $_SESSION[APLICATIVO]['usuario']['id_perfil'];

$servchoice = $_SESSION[APLICATIVO][SERVER]['serv_choice'];

$thispage = $_SESSION[APLICATIVO][SERVER]['serv_page'];

if($servchoice && thispage ){

if( $perfil ==1 ){

$pgserver = ServersDAO::selectAll('id_serv');

}

else

{

$pgserver = ServersDAO::selectAll('id_serv', 'serv_owner ='.$_SESSION[APLICATIVO]['usuario']['id_usuario'].'');

}

$frm = new TForm('Selecione o Servidor', 300, 850); 

$frm->addSelectField( 'IDSERV', 'Servidor:', null, $pgserver, null, null, null, null, null, null, '-- Selecione --', '' )->addEvent( 'onChange', 'atualizar_gride(this)' );

$frm->addGroupField('grpserver','Servidor Selecionado:',150,null,300,null,true)->setOverflowY(true);

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

$frm->closeGroup();

//$frm->addJavascript('top.jQuery("#div_main_menu").hide();'); // esconder o menu 

//$frm->setAction('Refresh',3);

$frm->show(); 

}

?>

<script>

function atualizar_gride(e)

{

fwGetGrid('servidores/action/listar.php','html_server',{"action":"listar","id_serv":e.value},true);

}

</script>


Autor: Jair de Jesus


44 comentários

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

     

    Jair,

    não sei se entendi bem a sua necessidade, vou dar a dica de como eu entendi o problema.

    Para que a pagina seja carregada e o gride seja carregado com a opção escolhida, temos que ter guardar qual foi a ultima opção selecionada e isto você deve fazer no módulo servidores/action/listar.php, que recebe o id_serv do campo select. Então neste modulo você deve gravar o seu valor na sessão:

    Exemplo: $_SESSION[ APLICATIVO ][ SERVER ][ 'serv_choice' ] = $_REQUEST['id_serv'];

    O módulo escolhaServer.php ficaria a ssim: ( coloquei em vermelho as linhas que alterei )

     

    <?php
    $perfil    =$_SESSION[ APLICATIVO ][ 'usuario' ][ 'id_perfil' ];
    $servchoice=$_SESSION[ APLICATIVO ][ SERVER ][ 'serv_choice' ];
    $thispage  =$_SESSION[ APLICATIVO ][ SERVER ][ 'serv_page' ];
    if ( $servchoice && thispage )
    {
        if ( $perfil == 1 )
        {
            $pgserver = ServersDAO::selectAll( 'id_serv' );
        }
        else
        {
            $pgserver = ServersDAO::selectAll( 'id_serv', 'serv_owner =' . $_SESSION[ APLICATIVO ][ 'usuario' ][ 'id_usuario' ] . '' );
        }

        $frm=new TForm( 'Selecione o Servidor', 300, 850 );
        $frm->addSelectField( 'IDSERV', 'Servidor:', null, $pgserver, null, null, $servchoice, null, null, null, '-- Selecione --', '' )->addEvent( 'onChange', 'atualizar_gride()' );
        $frm->addGroupField( 'grpserver', 'Servidor Selecionado:', 150, null, 300, null, true )->setOverflowY( true );
        $frm->addHtmlField( 'html_server', '' );
        $frm->closeGroup();
        //$frm->addJavascript('top.jQuery("#div_main_menu").hide();'); // esconder o menu
        //$frm->setAction('Refresh',3);
        $frm->addJavascript('atualizar_gride()');
        $frm->show();
    }
    ?>

    <script>
        function atualizar_gride()
            {
            var id_serv = jQuery("#id_serv").val();
            if( id_serv )
                {
                fwGetGrid('servidores/action/listar.php', 'html_server', { "action": "listar", "id_serv": id_serv},true);
                }
            }
    </script>

    Abraço.

    • Cff659012a9d95f8837b6d50d8c14c69?only path=false&size=50&d=404Jair de Jesus(usuário não autenticado)
      16 de Maio de 2013, 23:26

       

      Olá Luis, grato pela resposta.
      Testei aqui mas não surtiu o efeito desejado, isto porque não fui mesmo muito claro.
      Vou tentar de novo:
      Dentro do gride tudo funciona ok, o que pretendo é que depois de escolhido um servidor essa escolha se reflita em toda a página incluindo acima no menu, tipo onde tem o nome do usuário, coloquei também para aparecer o nome do servidor ao qual ele está logado(para isso alterei o arquivo index.php da raíz da aplicação ). Então quando faço login abre-se a tela de seleção do servidor, depois de selecionado o dito, abre-se um gride exibindo as características do tal, neste ponto gostaria que a página toda, não apenas o gride fosse atualizada. Assim, em cima na div do menu seria atualizada a informação sobre o servidor e as variavés referentes ao servido passariam a ser definidas como constantes(isso já funciona, porém se eu atualizar a página manualmente). 

Essa comunidade não possui posts nesse blog