Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde...
Eu tenho dois formulários em uma página, o primeiro é o formulário de cadastro, e o segundo é um formulário de consulta, este segundo formulário está como default display: none...
E eu tenho uma função que faz este formulário ser exibido...
Eu tenho um botão na minha página que cadastra os clientes e neste mesmo botão eu chamo no evento onclick a minha função para aparecer o segundo fomulário...
Só que o problema é o seguinte o botão da o submit e um refresh na página, e ele da o refresh o segundo formulário volta para a forma default que é display: none...
Como eu posso fazer para que depois de eu clicar no botão o primeiro formulário cadastre no banco e o segundo formulário seja exibido logo abaixo???
Espero que possam me ajudar...
Desde já sou grato...
Não entendi muito bem a sua idéia...
A minha função atualmente é assim:
CODE
function exibir_form (exibir) { if (exibir=='sim') {
document.getElementById('**frmconcand**').style.display = '';
}
}
frmconcand é o nome do formulário...
Eu chamo está função no botão de cadastro, que no caso funciona assim...
onClick="exibir_form('sim');"
Ele cadastra o cliente e logo após cadastrar ele exibe o outro formulário...
Só que exibe o outro formulário e já da o refresh da página, e como o default da página é o segundo formulário estar como display: none. Ele está sumindo na mesma hora...
Faça o seguinte..
Se você está usando um form, você deve estar usando uma linguagem Server-Side tb, certo ??
Então no "action" do form, crie uma QueryString, tipo "suaurl.asp?Gravou=Sim"..
Ai você faz a verificação da QueryString, se ela contiver valor, então você mostra o segundo form... tipo:
<%
If (Request.QueryString("Gravou") = "Sim" Then
%>
<script>
document.getElementById('frmconcand').style.display = 'block';
</script>
<% ELSE %>
<script>
document.getElementById('frmconcand').style.display = 'none';
</script>
<% End if%>
No exemplo acima eu utilizei o ASP como Server-Side, mas você pode utiizar a linguagem que preferir,...
Abraços...
Eu estou usando php, e atualmente funciona da seguinte forma...
<?php
//atribui o valor dos campos da página nas variáveis mencionadas
if (isset($_GET["acao"]) && $_GET["acao"]=="cadastrar"){
$empresa1 = $_POST['empresa1'];
.......................
.......................
.......................
.......................
?>
E no formulário eu uso no action <form action="cadastro_passo3.php?acao=cadastrar"....................>
mas eu terei que colocar o JS dentro de meu código php?
Sim....
você viu como eu fiz no exemplo acima ???
Eu coloquei o JS dentro do ASP...
Basta fazer o mesmo em PHP...
Eu fiz como você mostrou, mas não funcionou...
Abaixo segue o código...
CODE
<?php
//atribui o valor dos campos da página nas variáveis mencionadas
if (isset($_GET["acao"]) && $_GET["acao"]=="cadastrar"){
$empresa1 = $_POST['empresa1'];
$empresa2 = $_POST['empresa2'];
$cargo1 = $_POST['cargo1'];
$cargo2 = $_POST['cargo2'];
$datainicio = $_POST['datainicio'];
$datafim = $_POST['datafim'];
//variáveis para os alerts
$msgempr1 = "Preencha pelo menos 1 dos campos para Empresa.";
$msgempr2 = "Preencha apenas 1 dos campos para Empresa.";
$msgcarg1 = "Preencha pelo menos 1 dos campos para Cargo.";
$msgcarg2 = "Preencha apenas 1 dos campos para Cargo.";
//valida empresa e cargo
if ((($empresa1 == "Selecione...") && ($empresa2 == "")) || (($empresa1 != "Selecione...") && ($empresa2 != ""))) {
if (($empresa1 == "Selecione...") && ($empresa2 == "")){
echo "<script>alert('". $msgempr1 . "');</script>";
}
elseif (($empresa1 != "Selecione...") && ($empresa2 != "")){
echo "<script>alert('". $msgempr2 . "');</script>";
}
}
elseif ((($cargo1 == "Selecione...") && ($cargo2 == "")) || (($cargo1 != "Selecione...") && ($cargo2 != ""))) {
if (($cargo1 == "Selecione...") && ($cargo2 == "")){
echo "<script>alert('". $msgcarg1 . "');</script>";
}
elseif (($cargo1 != "Selecione...") && ($cargo2 != "")){
echo "<script>alert('". $msgcarg2 . "');</script>";
}
}
else{
//valida as datas
if ((checkData($datainicio)) && (checkData($datafim))){
//converte a data inicial (dataini) para o formato do banco
$datainicio = converte_data($datainicio);
//converte a data final (datafim) para o formato do banco
$datafim = converte_data($datafim);
//cria a sql para inserir no banco de dados
$sql1 = "INSERT INTO EXPERIENCIAS (expdatainicio,expdatafim)";
$sql1.="VALUES ('".$datainicio."','".$datafim."')";
$sql2 = "INSERT INTO EMPRESAS (empempresa)";
$sql2.="VALUES ('".$empresa2."')";
$sql3 = "INSERT INTO CARGOS (carcargo)";
$sql3.="VALUES ('".$cargo2."')";
//grava os dados no banco, ou imprime erro
$resultado = ibase_query($conexao,$sql1) or die ("Impossível gravar os dados");
$resultado = ibase_query($conexao,$sql2) or die ("Impossível gravar os dados");
$resultado = ibase_query($conexao,$sql3) or die ("Impossível gravar os dados");
//envia commit e fecha a conexão com o banco de dados
ibase_commit($conexao);
ibase_close($conexao);
//limpa as variáveis depois de salvar no banco
$empresa2 = "";
$cargo2 = "";
$datainicio = "";
$datafim = "";
}
else{
$mensagem = "Data Início ou Data Fim Inválido. Corrija por favor.";
echo "<script>alert('". $mensagem . "');</script>";
}
} //fecha if ((($empresa1 == "") && ($empresa2 == "")) || (($empresa1 != "") && ($empresa2 != ""))) {...
//} //fecha if (isset($_GET["acao"]) && $_GET["acao"]=="cadastrar"){...
?>
<script>
document.getElementById('frmconcand').style.display = 'block';
</script>
<?php
}else{
?>
<script>
document.getElementById('frmconcand').style.display = 'none';
</script>
<?php
} //fecha if (isset($_GET["acao"]) && $_GET["acao"]=="cadastrar"){...
?>
Eu nunca tinha visto desta maneira antes um código php e um js dentro...
To precisando muito disto...
Obrigado desde já...
tive uma idéia!
cria só 1 form
tem q ser feito em tabless (divs)
vai funcionar assim
div1 - campos do primeiro
div2 - campos do 2
no 1 você tera um botão continuar (por exemplo)
q será um botão normal não submit
type="buton"
com a ação de fexar a div1 e abrir a segunda..
intende?
bom proveito =D
você só tera q ter uma pág php pra tratar todos os dados
pra tratar os dados você pode ter um campo input type="hidden" onde nele você coloca qual será o tratamento das informações
pra tratar os dados você pode ter um campo input type="hidden" onde nele você coloca qual será o tratamento das informações
pra tratar os dados você pode ter um campo input type="hidden" onde nele você coloca qual será o tratamento das informações
Mas desta maneira eu terei que ter um botão do type=button e outro botão type=submit, para enviar as informções ao banco de dados...
É isso?Só que se for isso não adianta pois isso eu consigo faze, mais o problema é que eu não quero dois botões na página...
Entende?Pra não ficar muito poluida a pagina...
Abraço e obrigado desde já....
Ainda continuo com o mesmo problema...
Estou precisando muito resolver isso o mais rápido possível...
Me ajudem por favor!
cara.. você pode por o evento dentro do q você precisa e chamar a função q irá abrir o form q você precisar.
oq irá definir o formulário?
um texto de input? um radio? um checkbox?
Bom uma ideia seria setar na funcao qual a div que sera exibida, dai no botao você manda por parametro