Menu fixo e formulário dinâmico

4 respostas
C

Olá
Estou iniciando estudos em PHP e HTML. Como não pretendo me aprofundar muito em web, queria me manter apenas nisso mesmo… Sem JavaScript, nem JQuery, etc.

Vamos lá
Tenho o meu header e footer. No meu header tenho o meu menu, onde cada item é um BUTTON. Como faço para, quando eu clicar em um button, o formulário se abra entre o header e o footer?

Obs: a tag form ta ai porque eu tava tentando identificar quando um BUTTON era clicado, mas não deu muito certo não

<html><head><title>IBAV</title><link href="css/principal.css" rel="stylesheet"></head>

<body>

<form method="post" action="fMenu.php">
    <div id="menu">
        <ul>
            <center>
                <li><input type="button" id="button-menu" name="btnJesus" onclick="msg" value="JESUS"></li>
                <li><input type="button" id="button-menu" name="btnInicio" value="Início"></li>
                <li><input type="button" id="button-menu" name="btnParaVoce" value="Para você"></li>
                <li><input type="button" id="button-menu" name="btnMissoes" value="Missões"></li>
                <li><input type="button" id="button-menu" name="btnSobre" value="Sobre"></li>
                <li><input type="button" id="button-menu" name="btnContato" value="Contato"></li>
            </center>
        </ul>
    </div>
</form>




AQUI QUE TEM QUE APARECER OS FORMULARIOS 
QUANDO EU CLICAR NOS MENUS AI EM CIMA (nos botões)





</body>
</html>

Qualquer dúvida, só comentar aí que eu informo

4 Respostas

T

E aí @Chaybelucas, tudo bem?!

Então, o primeiro passo é remover algumas propriedades <form>, e apenas alterar algumas outras; No seu <form>, mude o método para get e deixe o action em branco, na verdade você pode até apaga-lo.

<form method="get" action="">

Nos <input>'s, mude o tipo para submit, em todos.

<input type="submit" id="button-menu" name="btnJesus" onclick="msg" value="JESUS">
[...]

Após isso, tu verás que toda vez que tu clicares em qualquer um dos botões, a URL da página vai mudando, de acordo com o botão equivalente. Agora dispondo desse artifício, vamos usar o <php>. Há duas possíveis maneiras de incluir os <form>'s, vou lhe mostrar as duas, daí você escolhe a mais apropriada para você, onde deve aparecer os <form>'s escreva:

1° MANEIRA:

[...]
<!--Abra a declaração do php -->
<?php
    //USE O $GET['VALUE'] PARA RECUPERAR A URL DE ACORDO COM BOTÃO.
    if(isset($_GET['btnJesus'])){ 
        include_once "./forms/form_SENHOR.php"; //A mágica acontece nesta linha, você pode chamar seu form de um arquivo externo.
    } elseif(isset($_GET['btnMissoes'])){
        include_once "./forms/form_Missoes.php";
    }
[...]
?>

2° MANEIRA:

[...]
<?php
//USE O $GET['VALUE'] PARA RECUPERAR A URL DE ACORDO COM BOTÃO.
if(isset($_GET['btnJesus'])): 
?>
    <h1>FORM SENHOR</h1>
    <form method="post" action="" name="form_1">
	    <input type="text" placeholder="Digite seu nome">
	    <input type="submit"value="OK">
    </form>
<?php
elseif(isset($_GET['btnMissoes'])):
?>
    <h1>FORM MISSÕES</h1>
    <form method="post" action="" name="form_1">
	    <input type="text" placeholder="Digite seu nome Novo Missonario">
	    <input type="submit"value="CONFIRMAR">
     </form>
<?php
endif;
?>
[...]

Como você pode ver, na primeira maneira você cria seus <form>'s externamente e apenas usa o PHP para importa os mesmos para sua página principal quando necessário. Já na segunda maneira você digita seus <form>'s na página principal, então, você usa o PHP para exibir um <form> especifico, de acordo com a escolha do usuário. Eu particularmente acho a primeira maneira mais organizada e bem mais fácil de trabalhar.

Vou mandar para você um arquivo zip com o exemplo acima, daí você pode testar e escolher a melhor para você.

Site IBAV.zip (1,7 KB)

Abraços!

T

Bom dia @Chaybelucas!

Caso tenha resolvido seu problema, põe a tag [RESOLVIDO] e marca a solução :tada: .

Abraços!

C

@Tuna, boa noite.
Estou utilizando a sua resposta, mas estou com o seguinte problema:
Quando chamo o programa, está correto, mas na hora de gravar no banco e para isso chamo outro programa, o menu fixo coloca na URL todos os campos, embora eu não tenha um comando especifico para isso, e o programa chamador , claro deixa de ser exibido.
O que preciso é que as informações sejam gravadas no banco de dados e uma mensagem apareça no meio da tela informando se foi bem sucedido. Utilizo o SweetAlert
Não consegui postar os programas por ser novo no forum.

Por favor veja se consegue me dar uma luz de como fazê-lo.

Desde já agradeço

T

Olá @cjlessa, seja bem vinda!!!

Eu sugiro usar a propriedade action= do seu form, por exemplo, <form action="tratar_dados.php" method="post">, depois de tratar os dados você pode redirecionar para outra página ou da um trigger no teu SweetAlert.

Espero ter ajudado, perdão pela demora.

Abraços!

Criado 17 de junho de 2019
Ultima resposta 23 de nov. de 2024
Respostas 4
Participantes 3