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
$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.
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).