Roberto Alexandre Levy
-
Total de itens
3 -
Registro em
-
Última visita
Posts postados por Roberto Alexandre Levy
-
-
Boa tarde Eduardo, tenho um sistema deste. Me manda o seu e-mail que eu envio para você.
-
Bom dia pessoal.
Sou novo no forum, alias, este é o primeiro forum que eu entro.
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 *** $(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 Esportiva</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 a Cidade</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">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, 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 horario FROM horarios WHERE cod_atividade = ?'; $stm = $pdo->prepare($sql); $stm->bindValue(1, $horarios); $stm->execute(); sleep(1); echo json_encode($stm->fetchAll(PDO::FETCH_ASSOC)); $pdo = null; } ?>
Relacionamento entre Select options
em PHP
Postado
Como eu entro no forum PHP?
Não achei esta opção.
Como disse, sou novato em foruns.