Ir para conteúdo
Fórum Script Brasil
  • 0

Multiplas Sessions - Como proceder?


leo_mendes

Pergunta

Boa Tarde pessoal,

Estou fazendo uma tela que exibe um gráfico em tempo real usando fusioncharts que é chamada a partir de outro gráfico estático numa outra pagina, ou seja , tenho um resumo e quando clico num dataset do gráfico estático ele abre um poupup com o gráfico em tempo real.

Na pagina onde está o grafico em tempo real eu recebo via GET um codigo x e armazeno em uma session para num outro script gerar dados para atualizar o gráfico.beleza! Até aqui tudo bem.

O problema é: quando quero visualizar mais de um grafico em tempo real , ou seja, ter varias telas com códigos diferentes, todos os gráficos acabam mostrando a mesma informação que é sempre igual ao ultimo código armazenado em $_SESSION['svc'].

O que eu posso fazer para ter varias session?

valeu pessoal!

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Boa noite

Eu entendi o que você quer, mas no caso ao invés d colocar várias sessions, não seria melhor enviar um objeto (ou mais) pela session?

qualquer coisa fala aí

Bom dia isaikki, obrigado por responder.

Não sou muito experiente , você poderia me dar um exemplo de fazer isso?

Valeu!

Cria posições diferentes para cada gráfico:

$_SESSION['grafico1']['x'] = $valor;
$_SESSION['grafico2']['x'] = $valor;

E assim por diante.

Um abraço.

Bom dia Willian, obrigado também por responder.

Acho que a idéia é legal também, mas como eu conseguiria fazer isso dinamicamente?

abs!

Link para o comentário
Compartilhar em outros sites

  • 0
Consegue sim. Na verdade teria que ver como está seu código.

Um abraço.

Fala Willian, vou passar meu código aqui..Valeu!

Aqui o código com o gráfico estático:

<HTML>

<HEAD>

<TITLE> FusionCharts - dataURL and Database Example</TITLE>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<script LANGUAGE="Javascript" SRC="../js/FusionCharts.js"></SCRIPT>

<link rel="stylesheet" type="text/css" media="screen" href="../themes/redmond/jquery-ui-1.8.2.custom.css" />

<link rel="stylesheet" type="text/css" media="screen" href="../themes/ui.jqgrid.css" />

<link rel="stylesheet" href="../css/jquery.click-calendario-1.0.css" type="text/css" />

<link rel="stylesheet" href="../jqtransformplugin/jqtransform.css" type="text/css" />

<style type="text/css">

label.error { float: none; color: red; margin: 0 .5em 0 0; vertical-align: top; font-size: 10px }

</style>

<script type="text/javascript" src="../js/jquery.js" ></script>

<script type="text/javascript" src="../js/jquery.validate.js" ></script>

<script type="text/javascript" src="../js/sliding_effect.js" ></script>

<script type="text/javascript" src="../js/jquery.click-calendario-1.0-min.js" ></script>

<script type="text/javascript" src="../jqtransformplugin/jquery.jqtransform.js" ></script>

<script src="../js/jquery-ui-custom.min.js" type="text/javascript"></script>

<script src="../js/jquery.layout.js" type="text/javascript"></script>

<script src="../js/i18n/grid.locale-pt-br.js" type="text/javascript"></script>

<script src="../js/jquery.jqGrid.min.js" type="text/javascript"></script>

<script type="text/javascript">

$.jgrid.no_legacy_api = true;

$.jgrid.useJSON = true;

</script>

<script>

$(function(){

$('form').jqTransform({imgPath:'img/'});

});

$(document).ready(function() {

var max = 0;

$("label").each(function(){

if ($(this).width() > max)

max = $(this).width();

});

$("label").width(max);

});

</script>

</HEAD>

<BODY>

<br />

<form>

<div class="rowElem" ><label>Data:</label><input type="text" name="data_1" id="data_1" size="10" maxlength="10"/>

<label></label><input type="submit" value="Ver Grafico" /></div>

</form>

<?php

include '../class/FusionCharts.php';

include '../class/DBConn.php';

include '../enviaLog.php';

session_start();

$sel_date = $_GET['data_1'];

$link = connectToDB();

$sql = "select distinct(svc) from BIL_ENTRADA_TOTALIZADO_15MIN_SVC where svc <> '' order by svc desc";

$rs = mssql_query($sql,$link);

//$rowCount = mssql_num_rows($rs);

$xmlData = "<chart palette=4' caption='Acompanhamento de Ligações Entrantes' subcaption='Por Serviço' yAxisName='Chamadas' showValues='0' numVDivLines='10' divLineAlpha='30' drawAnchors='0' labelPadding ='10' yAxisValuesPadding ='10' useRoundEdges='1' legendBorderAlpha='0'>";

$strcat = "<categories>";

$fstrcat = "</categories>";

$datasettotal = "<dataset seriesName='Total' >";

$datasetAtendidas = "<dataset seriesName='Atendida' color='FFD700'>";

$datasetNaoAtendidas = "<dataset seriesName='NaoAtendida' color='FF0000'>";

$total =0;

$atendida =0;

$naoatendida =0;

$fdataset = "</dataset>";

while($row = mssql_fetch_array($rs,MSSQL_ASSOC)){

$categories = trim($row['svc]);

$strcat .= "<category label='$categories'/>";

$detalhesSvc = "link='P-_blank,width=800,height=600,toolbar=no,scrollbars=no, resizable=no-detailed.php?svc=$categories'";

$sql2 = "select sum(total)as total,sum(atendida) as atendida,sum(naoatendida)as nt from BIL_ENTRADA_TOTALIZADO_15MIN_SVC

where svc <> '' and svc = ".$categories." and convert(char(10),datahora_de,103) = '".$sel_date."'";

$rs2 = mssql_query($sql2);

while($row2 = mssql_fetch_array($rs2)){

$total =$row2['total'];

$atendida =$row2['atendida'];

$naoatendida =$row2['nt'];

$strSetValueTotal .=<set value='".$total."' $detalhesSvc/>";

$strSetValueAtendida .="<set value='".$atendida."' $detalhesSvc/>";

$strSetValueNaoAtendidas .="<set value='".$naoatendida."' $detalhesSvc/>";

}

}

$xmlData.=$strcat.$fstrcat.$datasettotal.$strSetValueTotal.$fdataset.$datasetAtendidas.$strSetValueAtendida.$fdataset.$datasetNaoAtendidas.$strSetValueNaoAtendidas.$fdataset."</chart>";

echo renderChart("../Charts/MSColumn3D.swf", "", $xmlData, "Entrante", "1300", "800");

?>

</BODY>

</HTML>

Aqui tem uma função pra retornar os valores do banco.

<?php

include '../class/DBConn.php';

$link = connectToDB();

function getDataBySvc($svc) {

$sql = "select sum(total)as total,sum(atendida) as atendida,sum(naoatendida)as nt from BIL_ENTRADA_TOTALIZADO_15MIN_SVC

where svc <> '' and svc = '$svc' and convert(char(10),datahora_de,103) = convert(char(10),getdate(),103)";

$rs = mssql_query($sql);

while ($row = mssql_fetch_array($rs))

return $totais[] = array("total"=>$row['total],"atendida"=>$row['atendida'],"naoatendida"=>$row['nt']);

}

?>

Aqui a função que eu uso pra mandar as informações para o grafico de realtime

<?php

session_start();

include '../realtime/TotaisSvc.php';

$time = date('h:i:s');

$cont = getDataBySvc($_SESSION['svc']);

print "&label=$time"."&value=.$cont['atendida]."|".$cont['naoatendida'];

?>

Aqui o poupup que eu abro quando alguém clica no codigo que está no grafico estático.Nesta tela eu desenho o grafico.

<?php

session_start();

$svc = $_GET['svc'];

session_name($svc);

$_SESSION[$svc]['svc']=$svc;

?>

<!DOCTYPE html>

<html>

<head>

<title>Acompanhamento de operação <?php echo $svc; ?></title>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<script type="text/javascript" src="../js/FusionCharts.js"></script>

<script type="text/javascript">

function carregaGrafico() {

var chart1 = new FusionCharts("../Charts/RealTimeLine.swf", "ChId2", "1200", "350", "0", "0");

chart1.setDataURL("../data/analisedisvc.xml");

chart1.render("chartdiv2");

window.focus(this);

}

</script>

</head>

<body onload="carregaGrafico();">

<div id="chartdiv2"></div>

</body>

</html>

Obrigado pela ajuda!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...