Menu fixo e formulário dinâmico

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

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!

Bom dia @Chaybelucas!

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

Abraços!

1 curtida

@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

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!