Ir para conteúdo
Fórum Script Brasil
  • 0

Filtrando o resultado de uma consulta com JavaScript


Frank K Hosaka

Pergunta

Quando comecei a estudar o PHP em 2020, eu apanhei muito com o HTML e o JavaScript. Só hoje é que eu consegui filtrar os empregados por setor, mas ao invés de passar o serviço para o PHP pelo famoso método GET ou POST, eu pedi para o JavaScript resolver o problema.

O truque é que eu pedi para o PHP esconder tudo dentro do HTML e o JavaScript trabalha com esse material para mostrar ao usuário o que ele quer. Falando é fácil, mas eu gastei três anos da minha vida.

CREATE TABLE `tbempregados` (
  `id` int NOT NULL AUTO_INCREMENT,
  `empregado` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `idsetor` int DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

INSERT INTO `tbempregados` VALUES (1,'jose',1),(2,'maria',1),(3,'joao',1),(4,'jair',2),(5,'inácio',2),(6,'dilma',2);


CREATE TABLE `tbsetores` (
  `id` int NOT NULL AUTO_INCREMENT,
  `sigla` varchar(3) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `setor` varchar(45) COLLATE utf8mb4_general_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci

INSERT INTO `tbsetores` VALUES (1,'exp','expedicao'),(2,'emb','embalagem');
astudy.php

<body style="width:50%;margin:0 auto"><div style=height:5%></div>
<script>
function lista(selecao){
    empregados=JSON.parse(todos.innerHTML)
    filtro=empregados.filter(empregados=>empregados.setor==selecao)
    parte1="<select><option>Selecione o empregado</option>"
    parte2=""
    for(i=0;i<filtro.length;i++){
        filtro2=filtro[i]
        for(key in filtro2){
            if(key=="empregado"){
                parte2+="<option>"+filtro2[key]+"</option>"}}}
    divemp.innerHTML=parte1+parte2+"</select>"
    }
</script>
<?php
$mysqli=new mysqli("localhost","root","","astudy");
$query=$mysqli->query("select * from tbsetores,tbempregados 
    where tbsetores.id=tbempregados.idsetor");
$rows=$query->fetch_all(MYSQLI_ASSOC);
$jrows=json_encode($rows);
echo "<div id=todos style=display:none>$jrows</div>";
$query=$mysqli->query("select * from tbsetores");
$setores=$query->fetch_all(MYSQLI_ASSOC);
?>
<select onchange=lista(value)>
    <option>Selecione o setor</option>
    <?php foreach($setores as $setor):?>
    <option value=<?=$setor['setor']?>><?=$setor['setor']." - ".$setor['sigla']?>
    <?php endforeach; ?>
</select>
<p>
<div id=divemp>
<select>
    <option>Selecione o empregado</option>
</select>
</div>

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...