JRRC 0 Denunciar post Postado Dezembro 26, 2009 Bom dia a todos do iMasters, Meu problema é o seguinte galera, eu gostaria de chamar um formulário dinâmicamente, ou seja, após eu escolher uma determinada opção aparecesse um formulario de acordo com as opções que eu escolhi, por exemplo. Vou ter um select com os seguintes valores Iniciante Intermediário Avançado E um outro select com os seguintes valores Emagrecer Engordar Hipertrofiar E se por acaso eu escolhesse os valores Iniciante >> Engordar um formulário correspondente a esse valor fosse chamado automaticamente, seu sei que ficaria mais ou menos da forma que está abaixo if ($nivel == "Iniciante" && $treinamento == "Engordar") { echo "<script type = 'text/javascript'> location.href = 'endereço do meu formulario' </script>"; } Sei tambem que isso que está acima não é o suficiente tambem, alguem aqui no forum que ja tenha feito alguma coisa do tipo por favor poderia me ajudar a resolver esse problema ?! Desde de já obrigado pela ajuda de todos! Compartilhar este post Link para o post Compartilhar em outros sites
Kineri 0 Denunciar post Postado Dezembro 26, 2009 Uma boa função de redirecionamento do PHP é a header() com ela você manda o usuário para uma página específica, assim: <?php header("Location: suapaginaaqui.php"); ?>Você pode usar essa header() ao invés do seu location.href do Javascript. Ou você pode ter um formulário na página e, conforme a escolha do usuário, você muda o action do form com Javascript/jQuery Ou você também pode fazer um carregamento dinâmico do form inteiro com AJAX Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Dezembro 26, 2009 Kineri, Fiz um FORM da maneira que está abaixo para chamar os formularios correspondente ao tipo de nivel e treinamento que eu desejo, no entanto uma duvida cruel surgiu-me, aonde que adiciono algum comando para que quando eu escolher o nivel e o treinamento o formulário aparecessa abaixo ?! Os arquivos JS estão em meu index por isso nao add aqui nesse form. Desde de já obrigado pela atenção! <?php include "./conexao.php"; $codigo = $_GET["codigo"]; $opcao = $_GET["opcao"]; ?> <script type="text/javascript"> $(document).ready(function(){ $(function(){ $(function).onchange(function(){ var tipo = $('#tipo').val(); var treinamento = $('#treinamento').val(); if ((tipo == 'iniciante') && (treinamento == 'engordar')) { location.href = "classificacao/form_inic_engordar.php"; } }); }); }); </script> <div class="titulo_content"> <h1>Cadastro de Exercicios</h1> </div> <br /> <form id="formcli" name="formcc" method="get" action="classificacao/cad_clas.php" onsubmit="return validar()"> <table width="800" border="0" align="center" cellpadding="8" cellspacing="5"> <tr bgcolor="#C5E2F1"> <td align="left" valign="middle" bgcolor="#f0f0f0"><table width="100%" border="0" align="left"> <tr> <td width="19%">Selecione um Nivel: </td> <td width="22%"><select name="tipo" id="tipo"> <option selected="selected"></option> <option>Iniciante</option> <option>Intermediario</option> <option>Avançado</option> </select></td> <td width="23%">Selecione um Treinamento:</td> <td width="36%"><select name="treinamento" id="treinamento"> <option selected="selected"></option> <option>Engordar</option> <option>Emagrecer</option> <option>Hipertrofiar</option> </select></td> </tr> </table></td> </tr> <tr bgcolor="#C5E2F1"> </tr> <tr bgcolor="#C5E2F1"> <td align="center" valign="middle" bgcolor="#f0f0f0"> <table width="100%" border="0" cellspacing="0" cellpadding="2"> <tr> <td align="center" valign="middle" bgcolor="#f0f0f0" heigth = "30"> </tr> <tr> <td align="center" valign="middle" bgcolor="#f0f0f0" heigth = "30"> </tr> <tr> <td align="center" valign="middle" bgcolor="#f0f0f0" heigth = "30"><div align="center"> <input type="image" name="enviar" id="enviar" src="imagens/enviar.jpg" border="0" /> </tr> </table> </table> </form> Compartilhar este post Link para o post Compartilhar em outros sites
Kineri 0 Denunciar post Postado Dezembro 26, 2009 Meu conhecimento com jQuery e AJAX ainda não é muito bom, mas acredito que explorar a função load() do jQuery possa te ajudar: Função load() jQuery Só não tenho certeza se suas tabelas vão ajudar ou atrapalhar. Aproveito para pedir para algum companheiro aqui do iMasters dar uma ajuda com essa função (pro JRRC e pra mim também =P). (Obs.: Eca! Tabelas!) Compartilhar este post Link para o post Compartilhar em outros sites
RobertoPC 0 Denunciar post Postado Dezembro 26, 2009 Você pode colocar o formulário diretamente em javascript ou php se preferir. Olha: <html> <head> <title>...</title> <script type="text/javascript"> function selecionaForm(opcao){ var valor = document.getElementById('selectNivel').options[opcao].id; switch(valor){ // Iniciante em PHP //case'iniciante': document.getElementById('form').innerHTML = '<?php echo"<form>Formulário Iniciante</form>"; //include('iniciante.php'); ?>'; //Iniciante em Javascript case'iniciante': document.getElementById('form').innerHTML = '<form method="get">Iniciante<br>Nome<input type="editbox" name="nome"><input type="submit" value="Enviar"></form>'; break; case'intermediario': document.getElementById('form').innerHTML = '<?php echo"<form>Formulário Intermediário</form>"; //include('iniciante.php');?>'; break; case'avancado': document.getElementById('form').innerHTML = '<?php echo"<form>Formulário Avançado</form>"; //include('iniciante.php');?>'; break; } } </script> </head> <body> <select id="selectNivel" onchange="javascript:selecionaForm(this.selectedIndex)"> <option></option> <option id='iniciante'>Iniciante</option> <option id='intermediario'>Intermediário</option> <option id='avancado'>Avançado</option> </select> <div id='form'> </div> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Dezembro 26, 2009 RobertoPC, No meu select terá 3 niveis diferentes, pelo o que eu entendi esse script está funcionando apenas para um nivel correto ?! Muito obrigado pela ajud! Compartilhar este post Link para o post Compartilhar em outros sites
RobertoPC 0 Denunciar post Postado Dezembro 27, 2009 Ai você faz nos outros dois o mesmo que fiz no iniciante. E fiz de duas maneiras em php e javascript. Ai você escolhe o que for melhor para você. Exemplo: switch(valor){ case'iniciante': document.getElementById('form').innerHTML = '<form method="get">Iniciante<br>Nome<input type="editbox" name="nome"><input type="submit" value="Enviar"></form>'; break; case'intermediario': document.getElementById('form').innerHTML = '<form method="get">Intermediário<br>Nome<input type="editbox" name="nome"><input type="submit" value="Enviar"></form>'; break; case'avancado': document.getElementById('form').innerHTML = '<form method="get">Avançado<br>Nome<input type="editbox" name="nome"><input type="submit" value="Enviar"></form>'; break; } Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Dezembro 28, 2009 RobertoPC, Agora entendi melhor o seu código, mais tem um pequeno porém ainda, porque no meu caso eu iria selecionar uma das opções de nivel (INICIANTE >> INTERMEDIÁRIO >> AVANÇADO) e depois iria selecionar o tipo de treinamento (ENGORDAR >> EMAGRECER >> HIPERTROFIAR) e só então eu iria chamar o FORM, ou seja, após fazer a comparação entre o nivel e o treinamento, entendeu ?! Ai pelo que entendi novamente o script acima está chamando apenas pelo nivel correto ?! Como que faço para ele chamar o formulário de acordo com o nivel e o treinamento ?! Mais uma vez obrigado pela ajuda! Compartilhar este post Link para o post Compartilhar em outros sites
RobertoPC 0 Denunciar post Postado Dezembro 28, 2009 É só colocar um if dentro do case de nível. Com o tipo de treinamento. Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Dezembro 28, 2009 É só colocar um if dentro do case de nível. Com o tipo de treinamento. Então no caso ficaria assim ?! case'iniciante': if (treinamento == engordar) { document.getElementById('form').innerHTML = '<form method="get">Iniciante<br>Nome<input type="editbox" name="nome"><input type="submit" value="Enviar"></form>'; } break; Mais uma vez obrigado pela ajuda :) Compartilhar este post Link para o post Compartilhar em outros sites
RobertoPC 0 Denunciar post Postado Dezembro 29, 2009 Então no caso ficaria assim ?! Sim. Isso aew! Compartilhar este post Link para o post Compartilhar em outros sites