claitok 0 Denunciar post Postado Dezembro 16, 2012 Pessoal, Estou montando ou tentando montar uma estrutura com switch case para receber as informações da pagina abaixo: http://imageshack.us/photo/my-images/26/telarelatorios.jpg/ Se receber Gráfico. Ele deve montar um grafico com as informações solicitados. Se for Aluno - grafico de alunos, se for matricula - grafico de matriculas, e assim por diante. Caso receba textual. Ele deve montar um relatorio normal (printar na tela) com as informações solicitadas (alunos, matriculas...). Seguem abaixo o codigo do formulario e do switch (recebe formulario): https://gist.github.com/raw/a7382b90a860fe27743e/d85eba2e724425af7ed1ab8829bae8fe36b04177/formulario.php Formulario.php <!-- Box --> <div class="box"> <!-- Box Head --> <div class="box-head"> <h2>Extração de relatórios</h2> </div> <!-- End Box Head --> <form method="post" action="../../visao/relatorio/switch.php" name="formulario" onSubmit="return enviardados();"> <!-- Form --> <div class="form"> <p> <label>Tipo de relatório: </label> <select class="field size3" name="tipo"> <option value=""></option> <option value="">Grafico</option> <option value="">Textual</option> </select> </p> <p> <label>Seção desejada: </label> <select class="field size3" name="seção"></option> <option value=""></option> <option value="">ALUNOS</option> <option value="">MATRÍCULAS</option> <option value="">TURMAS</option> <option value="">MENSALIDADE</option> <option value="">OUTRO</option> </select> </p> </div> <!-- End Form --> <!-- Form Buttons --> <div class="buttons"> <input type="submit" class="button" value="Enviar" /> </div> <!-- End Form Buttons --> </form> </div> <!-- End Box --> Switch.php (form que recebe) - Sei que a lógica está errada, talvez tenha que montar um array. ?php $_POST['tipo'] = isset($_POST['tipo']); //? $_POST['tipo'] : NULL; switch ($_POST['tipo']) { case 'Grafico'; include "grafico_bd.php"; break; case 'pagina_02'; include "pagina_02.php"; break; case 'pagina_03'; include "pagina_03.php"; break; case 'pagina_04'; include "pagina_04.php"; break; default: include "pagina_01.php"; break; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Rangel 208 Denunciar post Postado Dezembro 16, 2012 Não sei se foi só na hora de passar para o post mais você colocou case 'texto';(ponto e virgula) que esta errado. Compartilhar este post Link para o post Compartilhar em outros sites
claitok 0 Denunciar post Postado Dezembro 16, 2012 Acho que foi na hora de colar, mas esse é o menor dos erros. Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_imasters 288 Denunciar post Postado Dezembro 16, 2012 você usa assim mano <? switch(@$_POST['tipo']) { case 'Grafico': include 'grafico_bd.php'; break; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
claitok 0 Denunciar post Postado Dezembro 16, 2012 Deu erro: ( ! ) Parse error: syntax error, unexpected 'case' (T_CASE) in C:\wamp\www\escola\visao\relatorio\switch.php on line 10 No caso ficou assim: <?php //$_POST['tipo'] = isset($_POST['tipo']); //? $_POST['tipo'] : NULL; switch (@$_POST['tipo']) { case 'Grafico': include 'grafico_bd.php'; break; } case 'pagina_02'; include "pagina_02.php"; break; case 'pagina_03'; include "pagina_03.php"; break; case 'pagina_04'; include "pagina_04.php"; break; default: include "pagina_01.php"; break; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Rangel 208 Denunciar post Postado Dezembro 16, 2012 colocar o @ na frente inibi o erro, se tem erro significa que tem algo errado. mesmo que não for o melhor código do mundo em performance e organização ele não pode ter erros. vai no manual do php e de uma olhada. Compartilhar este post Link para o post Compartilhar em outros sites
claitok 0 Denunciar post Postado Dezembro 16, 2012 Ele está passando pelo primeiro case e dando erro quando inicia o segundo... Compartilhar este post Link para o post Compartilhar em outros sites
Haz 3 Denunciar post Postado Dezembro 16, 2012 Quando for postar código, coloca entre [ code] [ /code] (sem espaço) pra facilitar a visualização. Ele dá o erro porque você fechou o switch depois do primeiro case. Os outros ficaram fora do bloco. switch (@$_POST['tipo']) { case 'Grafico': include 'grafico_bd.php'; break; } <----- case 'pagina_02'; include "pagina_02.php"; break; Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_imasters 288 Denunciar post Postado Dezembro 16, 2012 acabei de fala pra nao usar ; e sim : mano presta atenção veja o que tu tah fazendo case 'pagina_02'; viu? usando ; subistitua que nem ficou o 1° melhor vou subistituir pra você.. <?php if($_POST['tipo']) { switch (@$_POST['tipo']) { case 'Grafico': include 'grafico_bd.php'; break; case 'pagina_01': include 'pagina_01.php'; break; case 'pagina_02': include 'pagina_02.php'; break; case 'pagina_03': include 'pagina_03.php'; break; case 'pagina_04': include 'pagina_04.php'; break; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
claitok 0 Denunciar post Postado Dezembro 16, 2012 Pois é eu editei aqui também, agora funcionou, porém em partes. Agora preciso receber a informaçao do segundo e terceiros combos. Exemplo: Grafico Alunos Sexo Ai ele vai gerar um grafico com essas informações... Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_imasters 288 Denunciar post Postado Dezembro 16, 2012 seguinte como você está enviado para abrir usando o switch ? use method GET mais facil pagina load.php <?php switch (@$_GET['tipo']) { case 'Grafico': include 'grafico_bd.php'; break; case 'pagina_01': include 'pagina_01.php'; break; case 'pagina_02': include 'pagina_02.php'; break; case 'pagina_03': include 'pagina_03.php'; break; case 'pagina_04': include 'pagina_04.php'; break; } ?> ai tu faz o seguinte no link load.php?tipo=Grafico ai vai abrir o gráfico e assim por diante mudado somente o nome depois de = mano nao tem como exibir 2 de uma vez na realidade o que você está tentando fazer? Compartilhar este post Link para o post Compartilhar em outros sites
claitok 0 Denunciar post Postado Dezembro 16, 2012 Cara, quero montar o grafico de acordo com as informações enviadas pelo combo. Assim: Selecionei o tipo de relatorio (grafico ou textual); Se for grafico, preciso saber quais parametros para montar o grafico (para que eu possa montar a query, se for idade, sexo, enfim). Não sei se ficou claro. seguinte como você está enviado para abrir usando o switch ? use method GET mais facil pagina load.php <?php switch (@$_GET['tipo']) { case 'Grafico': include 'grafico_bd.php'; break; case 'pagina_01': include 'pagina_01.php'; break; case 'pagina_02': include 'pagina_02.php'; break; case 'pagina_03': include 'pagina_03.php'; break; case 'pagina_04': include 'pagina_04.php'; break; } ?> ai tu faz o seguinte no link load.php?tipo=Grafico ai vai abrir o gráfico e assim por diante mudado somente o nome depois de = mano nao tem como exibir 2 de uma vez na realidade o que você está tentando fazer? Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_imasters 288 Denunciar post Postado Dezembro 16, 2012 entao pq tah usando switch ? tenso tipo faz o seguinte 1° nao use acetos nos name do seus formularios trocando <select class="field size3" name="seção"></option> por <select class="field size3" name="secao"></option> agora você precisa coloca os valores no option que você fez <option value=""></option> <option value="">ALUNOS</option> <option value="">MATRÍCULAS</option> <option value="">TURMAS</option> <option value="">MENSALIDADE</option> <option value="">OUTRO</option> e aqui <option value="">Grafico</option> <option value="">Textual</option> vou arruma o formulario pra você como eu sou legal :) <!-- Box --> <div class="box"> <!-- Box Head --> <div class="box-head"> <h2>Extração de relatórios</h2> </div> <!-- End Box Head --> <form method="post" action="../../visao/relatorio/switch.php" name="formulario" onSubmit="return enviardados();"> <!-- Form --> <div class="form"> <p> <label>Tipo de relatório: </label> <select class="field size3" name="tipo"> <option value="grafico">Grafico</option> <option value="textual">Textual</option> </select> </p> <p> <label>Seção desejada: </label> <select class="field size3" name="secao"></option> <option value="alunos">ALUNOS</option> <option value="matriculas">MATRÍCULAS</option> <option value="turmas">TURMAS</option> <option value="mensalidade">MENSALIDADE</option> <option value="outro">OUTRO</option> </select> </p> </div> <!-- End Form --> <!-- Form Buttons --> <div class="buttons"> <input type="submit" class="button" value="Enviar" /> </div> <!-- End Form Buttons --> </form> </div> <!-- End Box --> bom agora vamos ao code do action do form . <?php $tipo =$_POST['tipo']; $secao =$_POST['secao']; if($tipo == ''){ echo 'Por favor escolhar um tipo.'; }elseif($secao == ''){ echo 'Por Favor Escolhar uma seção'; }else{ echo 'tipo recebido :$tipo Seção recebida:$secao'; } ?> pronto espero que agora der tudo certo Compartilhar este post Link para o post Compartilhar em outros sites
claitok 0 Denunciar post Postado Dezembro 16, 2012 O form eu tinha arrumado aqui também... Vou testar o action aqui. Caso contrario vou tentar fazer com GET e Switch (vai ficar horrível, mas se funcionar vai ter que ser, pois acho mais fácil montar os relatórios assim). Não funcionou, acho que vou voltar mesmo para o switch recebendo os values... entao pq tah usando switch ? tenso tipo faz o seguinte 1° nao use acetos nos name do seus formularios trocando <select class="field size3" name="seção"></option> por <select class="field size3" name="secao"></option> agora você precisa coloca os valores no option que você fez <option value=""></option> <option value="">ALUNOS</option> <option value="">MATRÍCULAS</option> <option value="">TURMAS</option> <option value="">MENSALIDADE</option> <option value="">OUTRO</option> e aqui <option value="">Grafico</option> <option value="">Textual</option> vou arruma o formulario pra você como eu sou legal :)/>/> <!-- Box --> <div class="box"> <!-- Box Head --> <div class="box-head"> <h2>Extração de relatórios</h2> </div> <!-- End Box Head --> <form method="post" action="../../visao/relatorio/switch.php" name="formulario" onSubmit="return enviardados();"> <!-- Form --> <div class="form"> <p> <label>Tipo de relatório: </label> <select class="field size3" name="tipo"> <option value="grafico">Grafico</option> <option value="textual">Textual</option> </select> </p> <p> <label>Seção desejada: </label> <select class="field size3" name="secao"></option> <option value="alunos">ALUNOS</option> <option value="matriculas">MATRÍCULAS</option> <option value="turmas">TURMAS</option> <option value="mensalidade">MENSALIDADE</option> <option value="outro">OUTRO</option> </select> </p> </div> <!-- End Form --> <!-- Form Buttons --> <div class="buttons"> <input type="submit" class="button" value="Enviar" /> </div> <!-- End Form Buttons --> </form> </div> <!-- End Box --> bom agora vamos ao code do action do form . <?php $tipo =$_POST['tipo']; $secao =$_POST['secao']; if($tipo == ''){ echo 'Por favor escolhar um tipo.'; }elseif($secao == ''){ echo 'Por Favor Escolhar uma seção'; }else{ echo 'tipo recebido :$tipo Seção recebida:$secao'; } ?> pronto espero que agora der tudo certo Compartilhar este post Link para o post Compartilhar em outros sites