Jump to content
Fórum Script Brasil
  • 0

Multiplas Sessions - Como proceder?


leo_mendes

Question

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 to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...