Usando o método da tentativa e erro, bem como a ajuda da Gemini, consegui montar o meu segundo arquivo html. Eu fiquei surpreso por ele ter funcionado, o código JavaScript funcionou, mesmo que tenha sido colocado no topo da página. Desconfio que o JavaScript conseguiu encontrar o <div id=usuario1> bem como <spam id=nomeUsuario> graças ao marcador <!DOCTYPE html>. Agora o meu desafio é reutilizar esse mesmo código em várias páginas que virão adiante, eu não consegui utilizar o marcador <include> do HTML, assim vou usar o motor xmlhttp do JavaScript. Espero que dê certo.
arquivo menu.html
<!DOCTYPE html><htmllang="en"><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1"><linkhref="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"rel="stylesheet"integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN"crossorigin="anonymous"><scriptsrc="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL"crossorigin="anonymous"></script><style>
a {color:blue;text-decoration:none}a:hover {color:black;}
body {align-items: center;background-color:#f5f5f5;}
form {margin:0}.linha {line-height:0px}
summary{list-style:none}
td {white-space: nowrap}</style><title>Projeto HTML</title><script>// pega o id e nome do usuário no php e amplia o menu de opções se o usuario = 1
xmlhttp=newXMLHttpRequest();
url ="config.php";
formData =newFormData();
formData.append('usuario','');
xmlhttp.open("POST",url,true);
xmlhttp.send(formData);
xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4&& xmlhttp.status==200){
usuario=JSON.parse(xmlhttp.responseText)
nomeUsuario.innerHTML=usuario.nome
if(usuario.id==1){
usuario1.classList.remove('d-none')
usuario1.classList.add('d-block')}}}</script><bodystyle="max-width:500px;margin:0 auto"><headerid=cabecalhoclass="navbar navbar-light sticky-top bg-light flex-md-nowrap p-0">
Projeto HTML
<divclass=dropdown><buttontype=buttonclass="btn btn-outline-primary dropdown-toggle"data-bs-toggle=dropdownid=btmenu>
Menu
</button><ulclass="dropdown-menu"><divid="usuario1"class="d-none"><li><aclass=dropdown-itemhref='diario.html'>Diário</a></li><li><aclass=dropdown-itemhref='balancete.html'>Balancete</a></li><li><aclass=dropdown-itemhref='pagar.html'>Pagar</a></li><li><aclass=dropdown-itemhref='outros.html'>Outros</a></li></div><li><aclass=dropdown-itemhref='orcamento.html'>Orcamento</a></li><li><aclass=dropdown-itemhref='pessoas.html'>Pessoa</a></li><li><aclass=dropdown-itemhref='produtos.html'>Produto</a></li><li><aclass=dropdown-itemhref='venda.html'>Relatório de Venda</a></li><li><aclass=dropdown-itemhref='mercado.html'>Mercado Pago</a></li></ul></div><divclass="dropdown"><buttonclass="btn btn-outline-primary dropdown-toggle"type="button"data-bs-toggle="dropdown"aria-expanded="false"><spamid="nomeUsuario"></spam></button><ulclass="dropdown-menu"><li><aclass="dropdown-item"href="?ControleLogin.sair">Sair</a></li><li><aclass="dropdown-item"href="?ControleLogin.alterarsenha">Mudar a senha</a></li></ul></div></header>
arquivo config.php
<?php
// ...if(isset($_POST['usuario'])){
$nome=$_SESSION['nome'];
$id=$_SESSION['id'];
echo json_encode(['nome'=>$nome,'id'=>$id]);}
Pergunta
Frank K Hosaka
Usando o método da tentativa e erro, bem como a ajuda da Gemini, consegui montar o meu segundo arquivo html. Eu fiquei surpreso por ele ter funcionado, o código JavaScript funcionou, mesmo que tenha sido colocado no topo da página. Desconfio que o JavaScript conseguiu encontrar o <div id=usuario1> bem como <spam id=nomeUsuario> graças ao marcador <!DOCTYPE html>. Agora o meu desafio é reutilizar esse mesmo código em várias páginas que virão adiante, eu não consegui utilizar o marcador <include> do HTML, assim vou usar o motor xmlhttp do JavaScript. Espero que dê certo.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.