我正在为Web应用程序使用Fullcalendar框架,问题是,在咨询时,我得到了一个空的JSON,如下所示:[]
我不知道是否与此有关,但是目前我正在使用一个名为Hostinger的主机,奇怪的是,在XAMPP中执行代码时,它可以正常工作
我要从CodeIgniter上传视图calendario.php,并从eventosc.php收集信息,该信息不在此框架的文件夹之内
我应该从哪里开始寻找?
views / calendario.php
在这里我对eventosc.php进行de AJAX调用
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Eventos</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<script src="<?php echo base_url();?>js/jquery.min.js"></script>
<script src="<?php echo base_url();?>js/moment.min.js"></script>
<!-- FullCalendar -->
<link rel="stylesheet" href="<?php echo base_url();?>css/fullcalendar.min.css">
<script src="<?php echo base_url();?>js/fullcalendar.min.js"></script>
<script src="<?php echo base_url();?>js/es.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
</head>
<style>
footer div a{
text-align: center;
text-decoration: none;
transition: 0.5s;
}
footer div a:hover
{
text-decoration: none;
text-align: center;
transition: 0.5s;
color: #000000;
}
</style>
<body>
<div class="container" style="margin-top:30px;">
<div class="row">
<div class="col"></div>
<div class="col-md-7"><div id="CalendarioWeb"></div></div>
<div class="col"></div>
</div>
</div>
<script>
$(document).ready(function(){
$('#CalendarioWeb').fullCalendar({
header:{
left:'today,prev,next',
center:'title',
right:'month, basicWeek, basicDay, agendaWeek, agendaDay'
},
dayClick:function(date,jsEvent,view){
limpiarFormulario();
$('#txtFecha').val(date.format());
$("#ModalEventos").modal();
},
events:'/fullc/eventosc.php',
eventClick:function(calEvent,jsEvent,view){
//H2
$('#tituloEvento').html(calEvent.title);
//MOSTRAR LA INFORMACION DEL EVENTO EN LOS INPUTS
$('#txtDescripcion').val(calEvent.descripcion);
$('#txtId').val(calEvent.Id);
$('#txtTitulo').val(calEvent.title);
$('#txtColor').val(calEvent.color);
FechaHora= calEvent.start._i.split(" ");
$('#txtFecha').val(FechaHora[0]);
$('#txtHora').val(FechaHora[1]);
$("#ModalEventos").modal();
},
editable:true,
eventDrop:function(calEvent){
$('#txtId').val(calEvent.Id);
$('#txtTitulo').val(calEvent.title);
$('#txtColor').val(calEvent.color);
$('#txtDescripcion').val(calEvent.descripcion);
var fechaHora=calEvent.start.format().split("T");
$('#txtFecha').val(fechaHora[0]);
$('#txtHora').val(fechaHora[1]);
RecolectarDatosGUI();
EnviarInformacion('modificar',NuevoEvento,true);
}
});
});
</script>
<!-- Modal (AGREGA, QUITA, MODIFICA)-->
<div class=
"modal fade" id="ModalEventos" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="tituloEvento"></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<input type="hidden" id="txtId" name="txtId" />
<input type="hidden" id="txtFecha" name="txtFecha" />
<div class="form-row">
<div class="form-group col-md-8">
<label>Titulo del Evento: </label>
<input type="text" id="txtTitulo" name="txtTitulo" class="form-control" placeholder="Titulo del Evento" />
</div>
<div class="form-group col-md-4">
<label>Hora del Evento:</label>
<input type="text" id="txtHora" name="txtHora" class="form-control" value="10:30"/>
</div>
</div>
<div class="form-group">
<label>Descripcion:</label>
<textarea id="txtDescripcion" rows="3" class="form-control"></textarea><br/>
</div>
<div class="form-group">
<label>Color:</label>
<input type="color" id="txtColor" name="txtColor" class="form-control" style="height:36px;"/>
</div>
</div>
<div class="modal-footer">
<button type="button" id="btnAgregar" class="btn btn-success" >Agregar</button>
<button type="button" id="btnModificar" class="btn btn-secondary">Modificar</button>
<button type="button" id="btnBorrar" class="btn btn-danger">Borrar</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar </button>
</div>
</div>
</div>
</div>
<footer class="row">
<div class="col">
<a href="<?php echo base_url();?>index.php/portalc/portal" style="text-decoration:none" > <h4>Regresar</h4></a>
</div>
</footer>
<script>
var NuevoEvento;
$('#btnAgregar').click(function(){
RecolectarDatosGUI();
EnviarInformacion('agregar',NuevoEvento);
//alert (NuevoEvento);
});
$('#btnBorrar').click(function(){
RecolectarDatosGUI();
EnviarInformacion('eliminar',NuevoEvento);
//alert (NuevoEvento);
});
$('#btnModificar').click(function(){
RecolectarDatosGUI();
EnviarInformacion('modificar',NuevoEvento);
//alert (NuevoEvento);
});
function RecolectarDatosGUI(){
var id = $('#txtId').val();
var titulo = $('#txtTitulo').val();
var start = $('#txtFecha').val()+" "+$('#txtHora').val();
var color = $('#txtColor').val();
var descripcion= $('#txtDescripcion').val();
var end = $('#txtFecha').val()+" "+$('#txtHora').val();
//alert(titulo);
NuevoEvento={
id1:id,
title1:titulo,
start1:start,
color1:color,
descripcion1:descripcion,
textColor1:"#FFFFFF",
end1:end
};
//alert(JSON.stringify(NuevoEvento));
}
function EnviarInformacion(accion,objEvento,modal){
// alert(JSON.stringify(objEvento));
$.ajax({
type:'POST',
url:'/fullc/eventosc.php?accion='+accion,
data:objEvento,
success:function(msg)
{
if(msg){
$('#CalendarioWeb').fullCalendar('refetchEvents');
if(!modal){
$("#ModalEventos").modal('toggle');
}
}
},
error : function(){
alert("error");
}
});
}
function limpiarFormulario(){
$('#txtId').val('');
$('#txtTitulo').val('');
$('#txtColor').val('');
$('#txtDescripcion').val('');
}
</script>
</body>
</html>
fullc / eventosc
默认情况下始终在XAMPP中工作
<?php
header('Content-Type: application/json');
$pdo=new PDO("mysql:dbname=bd;host=localhost","user","pass");
$pdo->exec("set names utf8");
$accion=(isset($_GET['accion']))?$_GET['accion']:'leer';
switch($accion){
case 'agregar':
$sentenciaSQL = $pdo->prepare("INSERT INTO Eventos(title, descripcion, color, textColor, start, end) VALUES (:title2,:descripcion2,:color2,:textColor2,:start2,:end2)");
$respuesta=$sentenciaSQL->execute(array(
"title2"=>$_POST['title1'],
"descripcion2"=>$_POST['descripcion1'],
"color2"=>$_POST['color1'],
"textColor2"=>$_POST['textColor1'],
"start2"=>$_POST['start1'],
"end2"=>$_POST['end1']
));
echo json_encode($respuesta);
break;
case 'eliminar':
$respuesta=false;
if(isset($_POST['id1'])){
$sentenciaSQL= $pdo->prepare("DELETE FROM Eventos WHERE Id = :ID");
$respuesta=$sentenciaSQL->execute(array("ID"=>$_POST['id1']));
}
echo json_encode($respuesta);
break;
case 'modificar':
$sentenciaSQL = $pdo->prepare("UPDATE Eventos SET
title=:title,
descripcion=:descripcion,
color=:color,
textColor=:textColor,
start=:start,
end=:end
WHERE Id=:ID");
$respuesta=$sentenciaSQL->execute(array(
"ID"=>$_POST['id1'],
"title"=>$_POST['title1'],
"descripcion"=>$_POST['descripcion1'],
"color"=>$_POST['color1'],
"textColor"=>$_POST['textColor1'],
"start"=>$_POST['start1'],
"end"=>$_POST['end1']
));
echo json_encode($respuesta);
break;
default:
//Seleccionar los eventos del calendario
$sentenciaSQL= $pdo->prepare("SELECT * FROM Eventos");
$sentenciaSQL->execute();
if(!$sentenciaSQL){
echo 'error';
}
else{
$resultado=$sentenciaSQL->fetchAll(PDO::FETCH_ASSOC);
echo json_encode ($resultado);
}
break;
}
?>