Ir para conteúdo

POWERED BY:

Arquivado

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

JRRC

Chamar formulario automaticamente

Recommended Posts

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

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

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

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

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

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

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

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

É 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

×

Informação importante

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