Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

claitok

Switch Case

Recommended Posts

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

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.