JavaScript - Full Calendar events url con parametros

 
Vista:

Full Calendar events url con parametros

Publicado por Roberto (11 intervenciones) el 14/06/2018 18:03:40
Buenas. Estoy trabajando en una aplicacion web para un centro deportivo que gestionará las reservas de actividades de los socios.
Actualmente tengo hecho el calendario con las actividades y se muestran corectamente pero me piden poder filtrar por actividad y hora.
Tengo un select donde tengo las actividades para filtrar antes de pintar el full calendar.
ahora mismo tengo este codigo en los eventos del full calendar pero no filtra nada.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<section class="banner">
    <div class="container" style="margin-top: 5px;color:black;float:left;clear:both">
        <select id="actividades_selector" name='actividades_selector'>
            <option value="TODAS">TODAS</option>
            <option value="BODY PUMP">BODY PUMP</option>
            <option value="BODY COMBAT">BODY COMBAT</option>
            <option value="CICLO">CICLO</option>
            <option value="TONIFICACION">TONIFICACION</option>
            <option value="BODY BALANCE">BODY BALANCE</option>
            <option value="PILATES">PILATES</option>
            <option value="ZUMBA">ZUMBA</option>
      </select>
 
        <div class="row" style="maxwidth:100%">
            <!--<div class="col"></div>-->
            <div class="col-12"> <div id="calendario_actividades"></div></div>
            <!--<div class="col"></div>-->
        </div>
    </div>
</section>
<script>
$(document).ready(function(){
 
    $('#calendario_actividades').fullCalendar({
        height: 650,
        width:1650,
        editable:true,
 
        header: {
            left: '',
            center: '',
            right: 'agendaWeek,listWeeks'
        },
        views: { // set the view button names
            listWeek: {buttonText: 'Diario'}
        },
 
        events:"http://localhost/Bpxport/actividades.php?filtro=+window.filtro_act",
 
        eventClick:function(calEvent,jsEvent,view){
            $('#txtID').val(calEvent.id);
            $('#txtActividad').val(calEvent.title);
            $('#txtMoniSala').val(calEvent.descripcion);
 
            $('#txtColor').val(calEvent.color);
 
            FechaHora = calEvent.start._i.split(" ");
 
            $('#txtFecha').val(FechaHora[0]);
            $('#txtHora').val(FechaHora[1]);
 
            $("#Modal_reservas").modal();
 
        },
        eventRender: function(event, element) {
            element.find('.fc-title').append("<br/>" + event.descripcion);
        }
    });
    $('#actividades_selector').change(function(){
        window.filtro_act = $(this).val();
        //alert (window.filtro_act);
        $('#calendario_actividades').fullCalendar('refetchEvents');
    });
 
});
</script>
 
En actividades.php tengo esto.
 
<?php
 
header('Content-type: application/json');
$datos = new PDO("mysql:dbname=BPXPORT;host:127.0.0.1","root","eldeorejo");
 
$accion=(isset($_GET['accion']))?$_GET['accion']:'leer';
switch($accion){
    case 'agregar':
        $sql = $datos->prepare("INSERT INTO
                ACTIVIDADES(title,descripcion,start,end,color,textcolor)
                VALUES(:title,:descripcion,:start,:end,:color,:textcolor)");
        $respuesta=$sql->execute(array(
            "title" => $_POST['title'],
            "descripcion" => $_POST['descripcion'],
            "start" => $_POST['start'],
            "end" => $_POST['end'],
            "color" => $_POST['color'],
            "textcolor" => $_POST['textcolor'],
        ));
        echo json_encode($respuesta);
        break;
    case 'eliminar':
       $respuesta = false;
        if(isset($_POST['id'])){
            $sql = $datos->prepare("DELETE FROM ACTIVIDADES WHERE id = :ID");
            $respuesta = $sql->execute(array("ID"=>$_POST['id']));
        }
        echo json_encode($respuesta);
        break;
    case 'modificar':
        $sql = $datos->prepare("UPDATE ACTIVIDADES SET
            title=:title,
            descripcion=:descripcion,
            start=:start,
            end=:end,
            color=:color,
            textcolor=:textcolor
            WHERE id=:ID");
        $respuesta=$sql->execute(array(
            "id" => $_POST['id'],
            "title" => $_POST['title'],
            "descripcion" => $_POST['descripcion'],
            "start" => $_POST['start'],
            "end" => $_POST['end'],
            "color" => $_POST['color'],
            "textcolor" => $_POST['textcolor'],
        ));
        echo json_encode($respuesta);
        break;
    default:
 
//       //seleccionamos las actividades
            if ($filtro != "TODAS"){
 
                $filtro_ = " WHERE title = '$filtro'";
            }else{
                 $filtro_ = '';
            }
 
            $sql = $datos->prepare("SELECT * FROM ACTIVIDADES$filtro_");
            $sql->execute();
            $resultado = $sql->fetchAll(PDO::FETCH_ASSOC);
            echo json_encode($resultado);
        break;
}
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Full Calendar events url con parametros

Publicado por Roberto (11 intervenciones) el 15/06/2018 23:55:40
Retomo la pregunta. Realmente solo necesito poder pasar la url en los events del full calendar con el parametro que llega del select. lo he probado de muchas formas pero no lo consigo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<div class="container" style="margin-top: 5px;color:black;float:left;clear:both">
 
    <select id="actividades_selector" name='actividades_selector'>
        <option value="TODAS">TODAS</option>
        <option value="BODY PUMP">BODY PUMP</option>
        <option value="BODY COMBAT">BODY COMBAT</option>
        <option value="CICLO">CICLO</option>
        <option value="TONIFICACION">TONIFICACION</option>
        <option value="BODY BALANCE">BODY BALANCE</option>
        <option value="PILATES">PILATES</option>
        <option value="ZUMBA">ZUMBA</option>
    </select>
 
$(document).ready(function(){
 
 
$('#calendario_actividades').fullCalendar({
    height: 650,
    width:1650,
    editable:true,
 
    header: {
        left: '',
        center: '',
        right: 'agendaWeek,listWeeks'
    },
 
    views: { // set the view button names
        listWeek: {buttonText: 'Diario'}
    },
 
    events:"http://localhost/Bpxport/actividades.php?Aqui necesito añadir el parametro que venga del select de las actividades (actividades_selector).

En el fichero actividades.php pregunto si viene este parametro y entonces creo la query que corresponda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar