javascript - codeigniter 中的事件日历未获取超过 1 条内容

标签 javascript php jquery html codeigniter

我在事件日历上获取超过 1 个结果时遇到问题。

我在同一天有超过 1 项考试..我需要显示..但实际情况是,它只显示同一天的 1 个结果..

我的查询正在获取同一天的所有考试,但不将其显示在日历上。

我的代码:

<?php
class Mycal_model extends CI_Model {

var $conf;
function Mycal_model(){
    //parent::CI_Model();

    $this->conf = array(
                    'start_day' => 'monday',
                    'show_next_prev' =>true,
                    'next_prev_url' => base_url().'mycal/display',
                    'day_type' =>'short');

    $this->conf['template'] = '

                            {table_open}<table border="1" cellpadding="0" cellspacing="0" class="calendar">{/table_open}

                            {heading_row_start}<tr>{/heading_row_start}

                                {heading_previous_cell}<th><a href="{previous_url}"><span class="caret left"></span></a></th>{/heading_previous_cell}

                                    {heading_title_cell}<th colspan="{colspan}">{heading}</th>{/heading_title_cell}

                                {heading_next_cell}<th><a href="{next_url}"><span class="caret right"></span></a></th>{/heading_next_cell}

                            {heading_row_end}</tr>{/heading_row_end}

                            {week_row_start}<tr>{/week_row_start}

                                {week_day_cell}<th style="color: black;font-size:20px;">{week_day}</th>{/week_day_cell}

                            {week_row_end}</tr>{/week_row_end}

                            {cal_row_start}<tr class="days">{/cal_row_start}
                                    {cal_cell_start}<td class="day">{/cal_cell_start}
                                            {cal_cell_start_today}<td>{/cal_cell_start_today}
                                                {cal_cell_start_other}<td class="other-month">{/cal_cell_start_other}

                                                    {cal_cell_content}
                                                        <div class="day_num">{day}</div>
                                                        <div class="content"><p><a href="#"><span>{content}</span></a></p></div>
                                                    {/cal_cell_content}

                                                    {cal_cell_content_today}
                                                            <div class="day_num">{day}</div>
                                                            <div class="content">{content}</div>
                                                    {/cal_cell_content_today}

                                                    {cal_cell_no_content_today}
                                                        <div class="day_num highlights">{day}</div>
                                                    {/cal_cell_no_content_today}

                                                    {cal_cell_no_content_today}
                                                        <div class="highlights">{day}</div>
                                                    {/cal_cell_no_content_today}

                                                    {cal_cell_blank}&nbsp;{/cal_cell_blank}

                                                    {cal_cell_other}{day}{/cal_cell_other}

                                                    {cal_cell_end}</td>{/cal_cell_end}
                                                {cal_cell_end_today}</td>{/cal_cell_end_today}
                                    {cal_cell_end_other}</td>{/cal_cell_end_other}
                            {cal_row_end}</tr>{/cal_row_end}

                            {table_close}</table>{/table_close}
    ';

}
function get_calendar_data($year, $month){
    $query = $this->db->select('ee_exam_date,ee_sname')->from('vm_entrance_exams')->like('ee_exam_date',"$year-$month",'after')->get();

    $cal_data = array();

     foreach($query->result() as $row){

        $cal_data[substr($row->ee_exam_date,8,2)] = substr($row->ee_sname,0,50);

     }

     return $cal_data;

}

function add_calendar_data($ee_exam_date, $ee_sname){

    if($this->db->select('ee_exam_date')->from('vm_entrance_exams')
        ->where('ee_exam_date',$ee_exam_date)->count_all_results()){

        $this->db->where('ee_exam_date',$ee_exam_date)
        ->update('vm_entrance_exams',array(
        'ee_exam_date' => $ee_exam_date,
        'ee_sname' => $ee_sname
        ));

    }
    else{
    $this->db->insert('vm_entrance_exams',array(
        'ee_exam_date' => $ee_exam_date,
        'ee_sname' => $ee_sname
        ));
        }
}
function generate ($year,$month){


    $this->load->library('calendar',$this->conf);

        $cal_data = $this->get_calendar_data($year, $month);

    return $this->calendar->generate($year,$month,$cal_data);
}
}

我的结果:

stdClass Object ( [ee_exam_date] => 2017-12-21 [ee_sname] => DNB CET SS ) stdClass Object ( [ee_exam_date] => 2017-12-03 [ee_sname] => IIFT ) stdClass Object ( [ee_exam_date] => 2017-12-17 [ee_sname] => SNAP ) stdClass Object ( [ee_exam_date] => 2017-12-21 [ee_sname] => IBSAT ) stdClass Object ( [ee_exam_date] => 2017-12-21 [ee_sname] => FMGE ) stdClass Object ( [ee_exam_date] => 2017-12-10 [ee_sname] => Maha TAIT ) stdClass Object ( [ee_exam_date] => 2017-12-10 [ee_sname] => C-CAT ) stdClass Object ( [ee_exam_date] => 2017-12-17 [ee_sname] => CPT EXAMINATION )

enter image description here

最佳答案

使用如下条件编辑 cal_data 变量:

...
function get_calendar_data($year, $month){
    $query = $this->db->select('ee_exam_date,ee_sname')->from('vm_entrance_exams')->like('ee_exam_date',"$year-$month",'after')->get();

    $cal_data = array();

     foreach($query->result() as $row){

        if (array_key_exists(substr($row->ee_exam_date,8,2), $cal_data)) {

            $cal_data[substr($row->ee_exam_date,8,2)] = $cal_data[substr($row->ee_exam_date,8,2)] . ' ' . substr($row->ee_sname,0,50); // this will just prepend current event with previous event

        } else {

            $cal_data[substr($row->ee_exam_date,8,2)] = substr($row->ee_sname,0,50);

        }
     }

     return $cal_data;

}
...

关于javascript - codeigniter 中的事件日历未获取超过 1 条内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47885183/

相关文章:

javascript - 无法让lazyload-any 工作

javascript - 如何在 JavaScript 中的 forEach 循环内返回值

javascript - 从 PHP/JavaScript 发送到 Python 脚本

jquery - setTimeout 在函数代码之前

jQuery Mobile slider 离散化和小数位数

javascript - 未调用 jQuery.ajax 转换器

javascript - 同步和异步编程有什么区别(在node.js中)

javascript - 无法从 XML 文件获取数据

php - OAuth 2 中的访问 token 和 auth_codes 有什么区别

php - MySQL 语法 :You have an error in your SQL syntax…