Bom… trabalhar com SWITCH e CASE é quase como trabalhar com CFIF/CFELSEIF/CFELSE … o SWITCH/CASE compara uma situação e, dependendo da comparação ele realiza (ou não) alguma coisa.
Vamos então para a prática, crie um ficheiro chamado p05_sc01.cfm e coloque o seguinte código dentro do mesmo:
Qual a sua cor preferida? <br /> <form name=”formSC01″ action=”p05_sc01resultado.cfm” method=”post”> <select name=”selCores”> <option value=””>– Seleccione –</option> <option value=””></option> <option value=”vermelho”>Vermelho</option> <option value=”azul”>Azul</option> <option value=”verde”>Verde</option> </select> <br><br> <input type=”submit” value=”Enviar”> </form>
Este código acima produzirá uma página com uma pergunta (“Qual a sua cor preferida?”) e logo abaixo uma lista com algumas opções e um botão para enviar.
Crie agora um ficheiro chamado p05_sc01resultado.cfm que é quem receberá o resultado e coloque o seguinte código dentro dele:
<!— cfparam para automaticamente criar a variável caso ela não exista —> <cfparam name=”form.selCores” default=”nenhuma”> <!— atribui o valor que veio do formulário à uma nova variável —> <cfset variables.cor_preferida = #form.selCores#>
<!— inicia a comparação Switch/Case —> <cfswitch expression=”#trim(variables.cor_preferida)#”> <cfcase value=”vermelho”> <cfset variables.cor = “FF0000″> </cfcase> <cfcase value=”azul”> <cfset variables.cor = “0000FF”> </cfcase> <cfcase value=”verde”> <cfset variables.cor = “00CC00”> </cfcase> <cfdefaultcase> <cfset variables.cor = “000000”> </cfdefaultcase> </cfswitch>
<cfoutput> Valor do campo input: #variables.cor_preferida# <br /><br />Código hexadecimal da cor: #variables.cor# <br /><br /> <b><font color=”#variables.cor#”>Texto da cor da sua cor preferida!.</font></b> <cfif variables.cor_preferida EQ “”> <br /> (Como não escolheu uma cor, a cor preta (000000) foi escolhida automaticamente! </cfif> </cfoutput> <br /><br /> <a href=”p05_sc01.cfm”>Voltar</a>
O que o CFSWITCH/CFCASE/CFDEFAULTCASE fez foi comparar o valor da variável, por exemplo, no primeiro CFCASE ele perguntou se o valor era “vermelho”, caso positivo ele criaria uma variável com o código hexadecimal da cor vermelho. Em seguida ele perguntou se o valor era “azul” e, caso positivo, criaria uma variável com o valor hexadecimal da cor azul.. em seguida ele perguntou se era “verde” e, caso fosse, criaria uma variável para esta cor e, por último, temos um CFDEFAULTCASE… que serve para quando o valor não se encaixar em nenhuma das perguntas, então, ele assume aquela opção como sendo a verdadeira.
Logo abaixo temos um CFOUTPUT para mostrar o resultado.
Primeiro ele mostra o valor que veio do campo FORM. Logo após ele mostra o código hexadecimal da cor. Após isto ele mostra uma frase da cor que você escolheu e, logo em seguida, existe um CFIF que irá verificar se o valor da variável está vazio (“”), caso positivo, ele insere aquela última frase a explicar o porque da frase estar na cor preta.
Bom… nesta curta aula aprendemos a como tratar alternativas utilizando CFSWITCH/CFCASE … a aula foi curta porque o que foi tratado também é curto… é uma outra forma de tratar condições… poderia ter sido feito através de CFIFs , mas, dizem que quando as opções são MUITAS o ideal é utilizar CFSWITCH.
Enfim… talvez as próximas abordagens se atrasem um pouco pois eu estou de volta às actividades na faculdade para terminar minha monografia (espero estar formado no final de Fevereiro) e nos próximos dias estarei a fazer um curso para concurso, o que me tomará várias horas de estudo por dia, mas, tentarei fazer com que todas as semanas haja alguma coisa nova sobre CF aqui.