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

Agendamento médico


piteco

Pergunta

Olá pessoal, gente eu estou com um problema e já tem uns dias e não consigo resolver, vamos e ele:

Estou desenvolvendo uma agenda médica, e preciso colocar um calendário que busque no banco os dias do mês com horas disponíveis para consulta, bem os dias que não possuírem horários para consultas ficarão indisponíveis, mas claro mostraram no calendário.

Bem pensei em colocar o datepicker ou o fullCalendar, inclusive o fullCaledar tem uma parte gráfica até melhor e estou tentando com ele. O problema é que não estou conseguindo amarrar isso com uma consulta no banco de dados.

Bem pesquisando na net, consegui um exemplo com o fullCalendar que parece ter um algum problema que não consulta no banco:

index.php

<html>
<head>
  <link rel="stylesheet" href="js/fullcalendar.css" type="text/css" media="screen" title="no title" charset="utf-8">
  
  <script type="text/javascript" src="js/jquery.js" charset="utf-8"></script>
  <script type="text/javascript" src="js/fullcalendar.min.js" charset="utf-8"></script>
  <script type="text/javascript" src="js/jquery-ui-1.8.23.custom.min.js" charset="utf-8"></script>
  

  
  <script type='text/javascript'>
    $(document).ready(function() {
      $('#calendar').fullCalendar({
           // eventSources: ['includes/build_calendar_events.php']
           events: 'includes/build_calendar_events.php'
      });
    });
  </script>
</head>

<body>
  <div id='calendar'></div>
</body>
</html>
build_calendar_events.php
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>json-events</title>
</head>

<body>
    <?php 
        $start = $_GET['start'];
        $end = $_GET['end'];
        
        $hostname='localhost';
        $username='root';
        $password='';
        $dbname='agenda_medica';
        
        mysql_connect($hostname, $username, $password) or die("Unable to connect!");
        mysql_select_db($dbname);
    
        $result = mysql_query("select * from agendados");
        
        $event_array = array();
        
        while ($record = mysql_fetch_array($result)) {
            $event_array[] = array(
                'id' => $record['id'],
                'title' => $record['agendamentoMedicoID'],
                'start' => $record['agendamentoData'],
                'end' => $record['agendamentoHora'],
//                'allDay' => $record['all_day']
            );
        }
    echo json_encode($event_array);
    ?>
    
</body>

</html>

Pô galera se vocês puderem me ajudar com isso, é que eu tenho que entregar isso o mais rápido possível.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Monta tudo em HTML e interage com ajax, é o modo mais rápido.

ESerra

Cara vê se pode me ajudar, comecei a fazer com o datePicker, da forma que fiz ele está lendo e verificando no banco, mas está a verificação está sendo feita caso a pessoa clique na data.

Eu preciso que assim que o datepicket seja ativado (mostrado na tela) ele faça a verificação automática no banco e as datas que tem horários livres para atendimento e deixa-as como link.

Cara se puder me dê essa força, meu prazo está se acabando e eu estou quebrando a cabeça.

index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>

<link href="js/jquery-ui-1.9.0.custom.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.9.2.custom.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.9.2.custom.min.js"></script>


<script type="text/javascript">
    $(document).ready(function(){
            $("#kalender").datepicker({
                firstDay: 1,
                dayNamesMin: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab'],
                monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
                dateFormat: "dd/mm/yy",
                
                onSelect: function() {    
                    var newFormat = $("#kalender").val();
                    $.ajax({
                        url: 'events.php',
                        type: 'POST',
                        dataType: 'json',
                        data: {selectedData: newFormat},
                        success: function(result) {
                            if (result.date === newFormat) {
                                $('#event').html(result['date'] + " " + result['event']);
                            }
                            else {
                                $('#event').html(result['none']);
                            }
                        }
                    });
                }
            });
                
    })
</script>



</head>

<body>
    <input type="text" name="kalender" id="kalender" />
    
    <div id="event">
    </div>

</body>
</html>
events.php
<?php
$hostname='localhost';
$username='root';
$password='';
$dbname='agenda_medica';

mysql_connect($hostname, $username, $password) or die("Erro!");
mysql_select_db($dbname);

if (isset($_POST['selectedData'])) {
    
    $dataSelect       = implode("-",array_reverse(explode("/",$_POST['selectedData'])));
    
    $sql2 = mysql_query("SELECT * FROM agendados WHERE agendamentoData = '$dataSelect'");
    $row2 = mysql_fetch_array($sql2);
    
    
    if ($row2 == ''){
        $data = array(
          'none' => 'Vazio '.$dataSelect
        );
        
        echo json_encode($data);
            
    } else {
        
        $data = array(
            "date" => $row2['agendamentoData'],
            "event" => $row2['agendamentoHora']
        );
        
        echo json_encode($data);
    }
}

?>

Link para o comentário
Compartilhar em outros sites

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...