drxm5014 2017-12-19 10:45
浏览 75
已采纳

codeigniter中的事件日历不会超过1个内容

I am facing problem in getting more than 1 result on event calendar.

I have more than 1 exam on same day ..which i need to display.. but whats going is that, it is showing only the 1 result of same day..

my query is fetching all exams of same day but not displaying it on calendar.

My Code:

<?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);
}
}

My result:

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

  • 写回答

1条回答 默认 最新

  • doufangzhang4454 2017-12-19 11:03
    关注

    Edit cal_data variable with conditional like this :

    ...
    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;
    
    }
    ...
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 汇编语言除法溢出问题
  • ¥50 C++实现删除N个数据列表共有的元素
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗