按下btn_insert按钮会将表单数据保存到我的数据库中,但数据在日历屏幕上未更新。我使用.fullCalendar('refetchEvents'),但它不起作用。如果我重新加载页面,日历数据会更新。控制器和模型没有错误,但我也将它们放在需要的情况下;我认为这个问题是在Javascript中发现的。我希望你能帮助我,谢谢大家。Fullcalendar refetchEvents不起作用(AJAX)
PD:我的英语不是很好,我希望你能理解
控制器
<?php
//We show the events
public function geteventos() {
$r = $this->mCalendar->geteventos();
echo json_encode($r);
}
public function insertar_cita() {
//we insert the events
$data = array(
'rut_usu' => $this->input->post('rut_usu'),
'rut_estu' => $this->input->post('rut_estu'),
'id_mot' => $this->input->post('id_mot'),
'fecha_ini' => $this->input->post('fecha_ini'),
'fecha_ter' => $this->input->post('fecha_ter'),
);
$this->load->model('mCalendar');
$this->mCalendar->insertar_cita($data);
}
?>
型号
<?php
public function geteventos() {
//We show the events
$this->db->select('CONCAT(estudiantes.pnombre," ", estudiantes.apellido_pa," ", estudiantes.apellido_ma,", ",motivos_citas.descripcion_mot) As title ,citas.id_ci id, citas.fecha_ini start, citas.fecha_ter end');
$this->db->from('citas');
$this->db->join('estudiantes', 'citas.rut_estu = estudiantes.rut_estu');
$this->db->join('motivos_citas', 'citas.id_mot = motivos_citas.id_mot');
$this->db->join('usuarios', 'citas.rut_usu = usuarios.rut_usu');
//$this->db->where('usuarios.rut_usu=17811942');
return $this->db->get()->result();
}
public function insertar_cita($data) {
/we insert the events
$this->db->insert('citas', $data);
}
?>
的Javascript
<script>
$(document).ready(function() {
//---------------------Full Calendar--------------------------------------
$.post('<?php echo base_url(); ?>cCalendar/geteventos',
function (data) {
//alert(data);
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay,listMonth'
},
defaultDate: new Date(),
navLinks: true, // can click day/week names to navigate views
businessHours: true, // display business hours
editable: true,
events: $.parseJSON(data),
dayClick: function (date, jsEvent, view) {
date_last_clicked = $(this);
$(this).css('background-color', '#bed7f3');
$('#modal_registrar').modal();
},
minTime: "08:30:00",
maxTime: "23:00:00"
});
});
//--------------END fullcalendar-----------------
//---INSERT-----------------------------
$("#btn_insert").click(function() {
var rut_usu = $("#rut_usu").val();
var rut_estu = $("#rut_estu").val();
var id_mot = $("#id_mot").val();
var fecha_ini = $("#fecha_ini").val();
var fecha_ter = $("#fecha_ter").val();
$.ajax({
url: "<?php echo base_url(); ?>" + "cCalendar/insertar_cita/",
type: 'post',
data: {"rut_usu": rut_usu, "rut_estu": rut_estu, "id_mot": id_mot, "fecha_ini": fecha_ini, "fecha_ter": fecha_ter},
success: function (response) {
$("#modal_registrar").modal('hide');
$("#modal_confirmar").modal('show');
$("#calendar").fullCalendar('refetchEvents');
}
});
});
//---END Insert-----------------------------
});
</script>
如果显示任何错误或消息,请尝试在Web浏览器中检查Javascript控制台。 –
dashboard.js:13 Uncaught TypeError:$(...)。sortable在HTMLDocument中不是函数 。(dashboard.js:13) at i(jquery-2.2.3.min.js:2) at Object.fireWith [as resolveWith](jquery-2.2.3.min.js:2) at Function。准备好(jquery-2.2.3.min.js:2) at HTMLDocument.J(jquery-2.2.3.min.js:2) –
您应该添加控制台输出到问题。 –