Jump to content

Roberto Levy

Members
  • Content count

    1
  • Joined

  • Last visited

Community Reputation

0 Comum

About Roberto Levy

  1. Bom noite pessoal. Sou novo no forum Estou com um "pequeno" problema: Tenho 3 selects que vão buscar dados do bd, a lógica é a seguinte: escolho uma unidade esportiva, e ele carrega para mim no outro select todas as atividades esportivas da referida unidade. Até aí tudo bem, porem, uma atividade esportiva pode ter vários horários diferentes. O que eu quero fazer... Abro o select Unidade esportiva: Flamengo Fluminense Cruzeiro Atlético Escolho Flamengo. Vem as modalidades que ele oferece: Futsal Volei Natação Corrida Escolho Futsal. Vem os horários: 07:00 às 08:30 08:45 às 10:15 10:30 às 12:00 Ou seja: O último select (Horário) tem que receber dados só do Flamengo, só do Futsal e os horários disponíveis. Segue abaixo BD e o meu código. PS. Este código foi tirado da internet no site da devmedia criado por Willian, ele da um exemplo com país, estado e cidade e eu estou tentando adaptar para o referido acima. *** BANCO DE DADOS *** CREATE TABLE `unidades` ( `id` int(5) NOT NULL, `unidade` int(5) NOT NULL, `nome` varchar(100) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- ---- Estrutura para tabela `atividades` -- CREATE TABLE `atividades` ( `id` int(5) NOT NULL, `unidade` int(5) NOT NULL, `cod_atividade` int(5) NOT NULL, `atividade` varchar(150) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- ---- Estrutura para tabela `horarios` -- CREATE TABLE `horarios`( `id` int(4) NOT NULL, `unidade` int(5) NOT NULL, `cod_atividade` int(5) NOT NULL, `horario` varchar(100) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; *** CONEXAO.PHP <?php function Conectar(){ try { $opcoes = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'); $con = new PDO("mysql:host=localhost; dbname=esportes;", "esportista", "competidor2019", $opcoes); return $con; } catch (Exception $e) { echo 'Erro: '.$e->getMessage(); return null; } } ?> *** INDEX.PHP *** <link rel="stylesheet" type="text/css" href="estilo.css"> <script type="text/javascript" src="jquery-1.8.2.js"></script> <script type="text/javascript"> $(document).ready(function(){ <!-- Carrega as Unidades esportivas --> $('#btnUnidades').click(function(e){ $('#btnUnidades').hide(); $('#mensagem').html('<span class="mensagem">Aguarde, carregando ...</span>'); $.getJSON('consulta.php?opcao=unidades', function (dados){ if (dados.length > 0){ var option = '<option>Selecione a Unidade</option>'; $.each(dados, function(i, obj){ option += '<option value="'+obj.unidade+'">'+obj.nome+'</option>'; }) $('#mensagem').html('<span class="mensagem">Total de Unidades encontradas.: '+dados.length+'</span>'); $('#cmbUnidades').html(option).show(); }else{ Reset(); $('#mensagem').html('<span class="mensagem">Não foram encontradas Unidades!</span>'); } }) }) <!-- Carrega as Modalidades Esportivas --> $('#cmbUnidades').change(function(e){ var unidades = $('#cmbUnidades').val(); $('#mensagem').html('<span class="mensagem">Aguarde, carregando ...</span>'); $.getJSON('consulta.php?opcao=atividades&valor='+unidades, function (dados){ if (dados.length > 0){ var option = '<option>Selecione a atividade esportiva</option>'; $.each(dados, function(i, obj){ option += '<option value="'+obj.unidade+'">'+obj.atividade+'</option>'; }) $('#mensagem').html('<span class="mensagem">Total de atividades encontradas.: '+dados.length+'</span>'); }else{ Reset(); $('#mensagem').html('<span class="mensagem">Não foram encontradas atividades para essa unidade!</span>'); } $('#cmbAtividades').html(option).show(); }) }) <!-- Carrega os Horarios --> $('#cmbAtividades').change(function(e){ var atividades = $('#cmbAtividades').val(); $('#mensagem').html('<span class="mensagem">Aguarde, carregando ...</span>'); $.getJSON('consulta.php?opcao=horarios&valor='+atividades, function (dados){ if (dados.length > 0){ var option = '<option>Selecione o Horário</option>'; $.each(dados, function(i, obj){ option += '<option>'+obj.horario+'</option>'; }) $('#mensagem').html('<span class="mensagem">Total de Horários encontrados.: '+dados.length+'</span>'); }else{ // Reset(); // $('#mensagem').html('<span class="mensagem">Unidade.: '+unidade+' .. Codigo da Atividade.: '+cod_atividade+' .. Horário.: '+horario+' </span>'); $('#mensagem').html('<span class="mensagem">Não foram encontrados Horários para essa Atividade!</span>'); } $('#cmbHorarios').html(option).show(); }) }) <!-- Resetar Selects --> function Reset(){ // $('#cmbUnidades').empty().append('<option>Carregar Unidades</option>>'); // $('#cmbAtividades').empty().append('<option>Carregar Atividades</option>>'); // $('#cmbHorarios').empty().append('<option>Carregar Horários</option>'); } }); </script> <body> <div id="conteudo"> <p><span class="destaque">Populando selects usando AJAX + JSON + PHP.</span></p> <hr /> <br/> <div id="unidades"> <label>Selecione a Unidade:</label> <select id="cmbUnidades"> <option>Carregar Unidades</option> </select> <input type="button" value="Carregar Unidades" id="btnUnidades" class="botao"/> </div> <div id="atividades"> <label>Selecione a Atividade:</label> <select id="cmbAtividades"> <option>Carregar Atividades</option> </select> </div> <div id="horarios"> <label>Selecione o Horário:</label> <select id="cmbHorarios"> <option>Carregar Horários</option> </select> </div> <hr /> <p><span class="destaque">Mensagens: </span></p> <div id="mensagem"> </div> </div> </body> *** CONSULTA.PHP *** <?php require_once('conexao.php'); $opcao = isset($_GET['opcao']) ? $_GET['opcao'] : ''; $valor = isset($_GET['valor']) ? $_GET['valor'] : ''; if (! empty($opcao)){ switch ($opcao) { case 'unidades': { echo getAllUnidades(); break; } case 'atividades': { echo getFilterAtividades($valor); break; } case 'horarios': { echo getFilterHorarios($valor); break; } } } function getAllUnidades(){ $pdo = Conectar(); $sql = 'SELECT unidade, nome FROM unidades'; $stm = $pdo->prepare($sql); $stm->execute(); sleep(1); echo json_encode($stm->fetchAll(PDO::FETCH_ASSOC)); $pdo = null; } function getFilterAtividades($unidades){ $pdo = Conectar(); $sql = 'SELECT unidade, cod_atividade, atividade FROM atividades WHERE unidade = ?'; $stm = $pdo->prepare($sql); $stm->bindValue(1, $unidades); $stm->execute(); sleep(1); echo json_encode($stm->fetchAll(PDO::FETCH_ASSOC)); $pdo = null; } function getFilterHorarios($atividades){ $pdo = Conectar(); $sql = 'SELECT unidade, cod_atividade, horario FROM horarios WHERE unidade = ?'; $stm = $pdo->prepare($sql); $stm->bindValue(1, $horarios); $stm->execute(); sleep(1); echo json_encode($stm->fetchAll(PDO::FETCH_ASSOC)); $pdo = null; } ?>
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.