Извлечь данные из базы данных SqlServer в полный календарь jQuery с помощью codeigniter3 - PullRequest
0 голосов
/ 20 сентября 2019

Я сталкиваюсь с одной и той же проблемой в течение многих дней ... Раньше я работал с тем же календарем на PHP, но мой проект в Codeigniter, поэтому он не встроен в мой проект ... Так что теперь я работаю с Codeigniter..

Код контроллера

class Calendar extends CI_Controller
{
    public function __construct()
    {
        Parent::__construct();
        $this->load->model('Calendar_model');
    }

    public function index()
    {
        $this->load->view('Calendar_view');
    }

    public function load()
    {

        $query = $this->Calendar_model->load_events();

        $data_events = array();

        foreach($query->result() as $row)
        {
            $data_events[] = array(
                "title" => $row->title,
                "start" => date('Y-m-d H:i:s',strtotime($row->start_event)),
                "end"   => date('Y-m-d H:i:s',strtotime($row->end_event))
            );
        }

        echo json_encode($data_events);
    }
}

Код модели

class Calendar_model extends CI_Model
{
    public function __construct()
    {
        Parent::__construct();
    }

    public function load_events()
    {
        $query = $this->db->get("events");

        return $query;
    }
}

Когда я запускаю вышеупомянутое с этим URL http://localhost/calendar_sql_copy/index.php/Calendar/load,

Я получил следующие данные

[{"title":"Meeting2","start":"2019-09-30 00:00:00","end":"2019-09-30 00:00:00"},{"title":"Meeting2","start":"2019-02-08 00:00:00","end":"2019-03-08 00:00:00"}]

Но когда я пытаюсь вытащить те же данные в Fullcalendar следующим образом ..

<script>
    $(document).ready(function(){
         var calendar = $('#calendar').fullCalendar({

        editable:true,
            header:{
                left:'prev,next today',
                center:'title',
                right:'month,agendaWeek,agendaDay'
            },
        selectable:true,
        selectHelper:true,
        // events:[
        //   {
        //   "title":"Meeting2",
        //   "start":"2019-09-30 00:00:00",
        //   "end":"2019-09-30 00:00:00"
        //   }
        // ]
       events:'<?php echo site_url('Calendar/load'); ?>'
</script>

Если я показываю то же самоеданные в статическом виде, как

events:[
           {
              "title":"Meeting2",
              "start":"2019-09-30 00:00:00",
              "end":"2019-09-30 00:00:00"
            }
        ]

Они появляются в календаре,

Но когда я пытаюсь выполнить рендеринг с URL, как показано ниже,

events:'<?php echo site_url('Calendar/load'); ?>'

Вот данныеиз браузера Сетевой инструмент: https://intouchsystems -my.sharepoint.com /: u: / g / personal / gurubaran_k_icsoft_co_in / EZE8m-w3Pn1HoktYxL2yHPQBKcuosFXP1M3uT69bh9qn9Q? e = 4% 3a5RjKuне показывает даже мой календарь ....

Где я сделал ошибку, пожалуйста, скажите мне ...

Это очень важный модуль в моем проектеt ...

В моей организации нет WebDevelopers, и я новичок в этом Codeigniter ...

1 Ответ

0 голосов
/ 27 сентября 2019

На основании информации, предоставленной как в вопросе, так и в комментариях, причина проблемы заключается в следующем:

<!-- Calendar.php --> <!-- Calendar_model.php -->

в вашем ответе AJAX.Ваш ответ должен содержать только JSON и ничего больше .Никакого другого текста, никаких пробелов в начале и конце ... ничего, кроме JSON.Если вы включите другие данные, подобные этим, то jQuery (и, следовательно, fullCalendar) не сможет правильно проанализировать JSON.

Убедитесь, что сервер не выводит дополнительные данные в ответе.Это решит проблему.

...