Sistema de agendamento com datepicker

04/12/2020

11

Boa tarde devs !

Estou tentando criar um sistema de agendamento com datas e horários disponíveis para a data selecionada.

Por exemplo, quero criar um datepicker jquery ou bootstrap tanto faz, ao selecionar o datepicker preciso de um select para popular os horários disponíveis para o dia selecionado no datepicker.

Alguém pode me dar uma ajuda...
Responder

Posts

04/12/2020

Gxf

O ideal seria vc especificar exatamente qual sua dúvida, para lhe ajudarem! Abs.
Responder

04/12/2020

Vinicius

O ideal seria vc especificar exatamente qual sua dúvida, para lhe ajudarem! Abs.

Concordo, só que estou perdido...
Já consultei alguns sistemas que queria fazer igual, porém já procurei bastante algum exemplo de código e não consigo achar.

Seria parecido com um sistema de agenda médica...porém no meu caso só preciso de dias e horários disponíveis para agendamento.

Preciso de um datepicker que ao selecionar abre um select com os horários disponíveis para o dia selecionado.
Tentei fazer a mesma lógica de select entre estados e cidades, ao selecionar um estado o select popula a cidade do estado selecionado.

Minha dúvida é que não estou conseguindo criar uma lógica para marcar o horário como ocupado.
Responder

17/02/2021

Jady

O ideal seria vc especificar exatamente qual sua dúvida, para lhe ajudarem! Abs.

Concordo, só que estou perdido...
Já consultei alguns sistemas que queria fazer igual, porém já procurei bastante algum exemplo de código e não consigo achar.

Seria parecido com um sistema de agenda médica...porém no meu caso só preciso de dias e horários disponíveis para agendamento.

Preciso de um datepicker que ao selecionar abre um select com os horários disponíveis para o dia selecionado.
Tentei fazer a mesma lógica de select entre estados e cidades, ao selecionar um estado o select popula a cidade do estado selecionado.

Minha dúvida é que não estou conseguindo criar uma lógica para marcar o horário como ocupado.


Olá, você conseguiu resolver? Estou com a mesma dificuldade.
Responder

18/02/2021

Vinicius

Bom dia à todos,

Minha dúvida é a seguinte:
Quero ter disponíveis dias de agendamento e horário para o dia selecionado, já tentei usar a mesma lógica de relação entre estados e cidades, que ao selecionar um estado o select popula a cidade correspondente ao estado. No meu caso seria ao selecionar um dia o select popula o horário para o dia selecionado, segue meus códigos que estou tentando.

Index.php:

    <label class="label">
        <span>Selecione um dia:</span>
        <select name="appointment_schedule_id" class="horarios">
            <option selected disabled value="">Nenhum Selecionado</option>
            <?php
            $read->readFull("SELECT 

                                *
            
                                FROM schedule s 
                                WHERE s.schedule_status IS NULL 
                                    AND s.schedule_tstamp >= CURRENT_TIMESTAMP 
                                GROUP BY s.hora_disp
                                ORDER BY s.schedule_tstamp ASC");
                                

            $schedules = ($read->getResult() ? $read->getResult() : null);

            if (!empty($schedules)) {
                foreach ($schedules as $schedule) {
                    $schedule = (object) $schedule;
                    echo "<option value='{$schedule->schedule_id}'>" . date('d/m/Y', strtotime($schedule->schedule_tstamp)) . "</option>";
                }
            }
            ?>
        </select>
    </label>

    <div>
        <select class="hora" style="display: none;">
        
        </select>
    </div>

    <p>
        <button type="submit" class="btn">Marcar Agendamento!</button>
    </p>
</form>

<script>
    $(".horarios").on("change", function() {
        var idHora = $(".horarios").val();

        $.ajax({
            url: 'busca_hora.php',
            type: 'POST',
            data:{id:idHora},
            beforeSend: function()
            {
                $(".hora").css({'display': 'block'});
                $(".hora").html("Carregando...");
            },
            success: function(data) 
            {
                $(".hora").css({'display': 'block'});
                $(".hora").html(data);
            },
            error: function(data) 
            {
                $(".hora").css({'display': 'block'});
                $(".hora").html("Houve um erro");
            }
        });
    });
</script>


<?php

require_once 'conexao.php';
 
$pega_hora = $conexao->prepare("SELECT 
									
									*

									FROM horas_disp
									WHERE schedule_id='".$_POST['id']."'
									/*AND s.schedule_time >= CURRENT_TIMESTAMP */
									");


$pega_hora->execute();

	$fetchALL = $pega_hora->fetchALL();

		foreach ($fetchALL as $horas_disp) {
			echo '<option>'.$horas_disp['horario_disp'].'</option>';
		}


CREATE TABLE `horas_disp` (
  `id` int(11) NOT NULL,
  `horario_disp` datetime NOT NULL,
  `schedule_id` int(11) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Extraindo dados da tabela `horas_disp`
--

INSERT INTO `horas_disp` (`id`, `horario_disp`, `schedule_id`) VALUES
(1, '2021-02-15 09:30:00', 1),
(2, '2021-02-15 10:30:00', 1),
(3, '2021-02-15 11:30:00', 1),
(4, '2021-02-16 09:30:00', 4);

-- --------------------------------------------------------

--
-- Estrutura da tabela `schedule`
--

CREATE TABLE `schedule` (
  `schedule_id` int(11) UNSIGNED NOT NULL,
  `hora_disp` int(11) NOT NULL,
  `schedule_tstamp` timestamp NULL DEFAULT NULL,
  `schedule_status` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Extraindo dados da tabela `schedule`
--

INSERT INTO `schedule` (`schedule_id`, `hora_disp`, `schedule_tstamp`, `schedule_status`) VALUES
(1, 1, '2021-02-24 12:30:00', NULL),
(2, 1, '2021-02-15 13:30:00', NULL),
(3, 1, '2021-02-15 14:30:00', NULL),
(4, 2, '2021-02-16 12:30:00', NULL),
(5, 2, '2021-02-16 13:30:00', NULL),
(6, 0, '2021-02-25 12:30:00', NULL);

ALTER TABLE `horas_disp`
  ADD PRIMARY KEY (`id`,`schedule_id`),
  ADD KEY `fk_horas_disp_schedule_idx` (`schedule_id`);

-- Índices para tabela `schedule`
--
ALTER TABLE `schedule`
  ADD PRIMARY KEY (`schedule_id`);

ALTER TABLE `horas_disp`
  ADD CONSTRAINT `fk_horas_disp_schedule` FOREIGN KEY (`schedule_id`) REFERENCES `schedule` (`schedule_id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
COMMIT;




Pessoal Não postei o código completo por te tratar de ser complexo... A parte que não estou conseguindo é essa.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar